Merge pull request #2802 from BrzVlad/feature-evacuation-opt2
[mono.git] / mcs / tests / gtest-optional-36.cs
1 using System;
2
3 public class Program
4 {
5         static int Arg (uint a, long b)
6         {
7                 return 2;
8         }
9
10         static int Arg (int a, ulong b, int c = 9)
11         {
12                 return 3;
13         }
14
15         static int Arg_2 (uint a, long b, params int[] arg)
16         {
17                 return 2;
18         }
19
20         static int Arg_2 (int a, ulong b, int c = 0)
21         {
22                 return 3;
23         }
24
25         static int Arg_3 (int a, long b, params int[] arg)
26         {
27                 return 2;
28         }
29
30         static int Arg_3 (uint a, ulong b, int c = 0, int d = 1, params int[] oo)
31         {
32                 return 3;
33         }       
34
35         public static int Main ()
36         {
37                 if (Arg (0, 0) != 2)
38                         return 1;
39
40                 if (Arg (0, 0, 0) != 3)
41                         return 2;
42
43                 if (Arg_2 (0, 0) != 3)
44                         return 3;
45
46                 if (Arg_2 (0, 0, 0, 0) != 2)
47                         return 4;
48
49                 if (Arg_3 (0, 0) != 2)
50                         return 5;
51
52                 if (Arg_3 (0, 0, 0) != 2)
53                         return 6;
54
55                 if (Arg_3 (0, 0, 0, 0) != 2)
56                         return 7;
57
58                 if (Arg_3 (0, 0, 0, 0, 0) != 2)
59                         return 8;
60
61                 if (Arg_3 (0, 0, 0, 0, 0) != 2)
62                         return 9;
63
64                 return 0;
65         }
66 }