Merge pull request #4419 from BrzVlad/fix-oom-nre
[mono.git] / mcs / tests / test-166.cs
1 using System;
2
3 interface ITargetInfo
4 {
5         int TargetIntegerSize {
6                 get;
7         }
8 }
9
10 interface ITargetMemoryAccess : ITargetInfo
11 {
12 }
13
14 interface IInferior : ITargetMemoryAccess
15 {
16 }
17
18 interface ITest
19 {
20         int this [int index] {
21                 get;
22         }
23 }
24
25 class Test : ITest
26 {
27         public int this [int index] {
28                 get { return 5; }
29         }
30
31         int ITest.this [int index] {
32                 get { return 8; }
33         }
34 }
35
36 class D : IInferior
37 {
38         public int TargetIntegerSize {
39                 get { return 5; }
40         }
41
42         int Hello (IInferior inferior)
43         {
44                 return inferior.TargetIntegerSize;
45         }
46
47         public static int Main ()
48         {
49                 D d = new D ();
50
51                 if (d.Hello (d) != 5)
52                         return 1;
53
54                 Test test = new Test ();
55                 ITest itest = test;
56
57                 if (test [0] != 5)
58                         return 2;
59                 if (itest [0] != 8)
60                         return 3;
61
62                 return 0;
63         }
64 }