[mcs] Pending implementation of accessors cannot hide base implementation with differ...
[mono.git] / mcs / tests / test-nameof-05.cs
1 // Compiler options: -warnaserror
2
3 using System;
4
5 public class Person
6 {
7         public Car MyCar { get; set; }
8 }
9
10 public class Car
11 {
12         public int Year { get; set; }
13 }
14
15 enum EE
16 {
17         K
18 }
19
20 public class MainClass
21 {
22         class Nested
23         {
24         }
25
26         public static Person MyPerson1 { get; } = new Person();
27         public static Person MyPerson2 = new Person();
28         public const Person MyPerson3 = null;
29         public static event Action Act = null;
30         public static dynamic BBB = null;
31
32         void ParameterTest (Person ParPerson)
33         {
34                 Console.WriteLine (nameof (ParPerson.MyCar.Year));
35         }
36
37         public static int Main ()
38         {
39                 string name;
40
41                 name = nameof (MyPerson1.MyCar.Year);
42                 if (name != "Year")
43                         return 1;
44
45                 name = nameof (MyPerson2.MyCar.Year);
46                 if (name != "Year")
47                         return 2;
48
49                 name = nameof (MyPerson3.MyCar.Year);
50                 if (name != "Year")
51                         return 3;
52
53                 name = nameof (Act.Method.MemberType);
54                 if (name != "MemberType")
55                         return 4;
56
57                 name = nameof (BBB.A.B.C);
58                 if (name != "C")
59                         return 5;
60
61                 name = nameof (EE.K.ToString);
62                 if (name != "ToString")
63                         return 6;
64
65                 name = nameof (int.ToString);
66                 if (name != "ToString")
67                         return 7;
68
69                 Person LocPerson = null;
70                 name = nameof (LocPerson.MyCar.Year);
71                 if (name != "Year")
72                         return 8;
73
74                 return 0;
75         }
76 }