New test.
[mono.git] / mcs / tests / gtest-289.cs
1 // Compiler options: -optimize+\r
2 \r
3 using System;\r
4 using System.Reflection;\r
5 \r
6 enum E\r
7 {\r
8 }\r
9 \r
10 delegate void D();\r
11 \r
12 class C {\r
13         public C () {}\r
14 \r
15         int i = default (int);\r
16         double d = default (double);\r
17         char c = default (char);\r
18         bool b = default (bool);\r
19         decimal dec2 = default (decimal);\r
20         object o = default (object);\r
21         ValueType BoolVal = default (ValueType);\r
22         E e = default (E);\r
23                 \r
24         int[] a_i = default(int[]);\r
25         object[] a_o = default(object[]);\r
26         ValueType[] a_v = default(ValueType[]);\r
27 \r
28         event D Ev1 = default(D);\r
29 }\r
30 \r
31 class Consts\r
32 {\r
33         const int i = default (int);\r
34         const double d = default (double);\r
35         const char c = default (char);\r
36         const bool b = default (bool);\r
37         const decimal dec2 = default (decimal);\r
38         const object o = default (object);\r
39         const ValueType BoolVal = default (ValueType);\r
40         const E e = default (E);\r
41                 \r
42         const int[] a_i = default(int[]);\r
43         const object[] a_o = default(object[]);\r
44         const ValueType[] a_v = default(ValueType[]);\r
45 }\r
46 \r
47 class Test\r
48 {\r
49         static int Main ()\r
50         {\r
51                 ConstructorInfo mi = typeof(C).GetConstructors ()[0];\r
52         MethodBody mb = mi.GetMethodBody();\r
53                 \r
54                 if (mb.GetILAsByteArray ().Length != 7) {\r
55                         Console.WriteLine("Optimization failed");\r
56                         return 3;\r
57                 }\r
58                         \r
59                 Console.WriteLine ("OK");\r
60                 return 0;\r
61         }\r
62 }