1Testing for type A
2A-virtual           A.SayHi()='Hi '
3A-interface   Greeter.SayHi()='Hi '
4A-virtual           A.SayHiTwice()='Hi Hi '
5A-interface   Greeter.SayHiTwice()='Hi Hi '
6End testing for type A
7Testing for type B
8B-virtual           B.SayHi()='Hello '
9B-interface   Greeter.SayHi()='Hello '
10B-interface  Greeter2.SayHi()='Hello '
11B-virtual           B.SayHiTwice()='I say Hello Hello '
12B-interface   Greeter.SayHiTwice()='I say Hello Hello '
13B-interface  Greeter2.SayHiTwice()='I say Hello Hello '
14End testing for type B
15Testing for type C
16C-virtual           A.SayHi()='Hi '
17C-virtual           C.SayHi()='Hi '
18C-interface   Greeter.SayHi()='Hi '
19C-virtual           A.SayHiTwice()='You don't control me'
20C-virtual           C.SayHiTwice()='You don't control me'
21C-interface   Greeter.SayHiTwice()='You don't control me'
22End testing for type C
23Testing for type D
24D-virtual           D.GetName()='Alex '
25D-interface  Greeter3.GetName()='Alex '
26D-virtual           D.SayHi()='Hello Alex '
27D-interface   Greeter.SayHi()='Hello Alex '
28D-interface  Greeter3.SayHi()='Hello Alex '
29D-virtual           D.SayHiTwice()='Hello Alex Hello Alex '
30D-interface   Greeter.SayHiTwice()='Hello Alex Hello Alex '
31D-interface  Greeter3.SayHiTwice()='Hello Alex Hello Alex '
32End testing for type D
33Testing for type E
34E-virtual           A.SayHi()='Hi2 '
35E-virtual           E.SayHi()='Hi2 '
36E-interface   Greeter.SayHi()='Hi2 '
37E-interface  Greeter2.SayHi()='Hi2 '
38E-virtual           A.SayHiTwice()='I say Hi2 Hi2 '
39E-virtual           E.SayHiTwice()='I say Hi2 Hi2 '
40E-interface   Greeter.SayHiTwice()='I say Hi2 Hi2 '
41E-interface  Greeter2.SayHiTwice()='I say Hi2 Hi2 '
42End testing for type E
43Testing for type F
44F-interface Attendant.GetPlace()='android'
45F-virtual           F.GetPlace()='android'
46F-virtual           A.SayHi()='Hi '
47F-interface Attendant.SayHi()='Hi '
48F-virtual           F.SayHi()='Hi '
49F-interface   Greeter.SayHi()='Hi '
50F-virtual           A.SayHiTwice()='We can override both interfaces'
51F-interface Attendant.SayHiTwice()='We can override both interfaces'
52F-virtual           F.SayHiTwice()='We can override both interfaces'
53F-interface   Greeter.SayHiTwice()='We can override both interfaces'
54End testing for type F
55Testing for type G
56G-interface Attendant.GetPlace()='android'
57G-virtual           G.GetPlace()='android'
58G-interface Attendant.SayHi()='welcome to android'
59G-virtual           G.SayHi()='welcome to android'
60G-interface Attendant.SayHiTwice()='welcome to androidwelcome to android'
61G-virtual           G.SayHiTwice()='welcome to androidwelcome to android'
62End testing for type G
63Testing for type H
64H-interface Extension.SayHi()='welcome '
65H-virtual           H.SayHi()='welcome '
66End testing for type H
67Testing for type I
68I-virtual           A.SayHi()='Hi '
69I-interface   Greeter.SayHi()='Hi '
70I-interface  Greeter2.SayHi()='Hi '
71I-virtual           I.SayHi()='Hi '
72I-virtual           A.SayHiTwice()='I say Hi Hi '
73I-interface   Greeter.SayHiTwice()='I say Hi Hi '
74I-interface  Greeter2.SayHiTwice()='I say Hi Hi '
75I-virtual           I.SayHiTwice()='I say Hi Hi '
76End testing for type I
77Testing for type J
78J-virtual           A.SayHi()='Hi '
79J-interface   Greeter.SayHi()='Hi '
80J-virtual           J.SayHi()='Hi '
81J-virtual           A.SayHiTwice()='Hi Hi '
82J-interface   Greeter.SayHiTwice()='Hi Hi '
83J-virtual           J.SayHiTwice()='Hi Hi '
84End testing for type J
85Testing for type K
86K-interface       Foo.bar()='foobar'
87K-virtual           K.bar()='foobar'
88End testing for type K
89Testing for type L
90L-interface       Foo.bar()='foobar'
91L-virtual           K.bar()='foobar'
92L-virtual           L.bar()='foobar'
93End testing for type L
94Testing for type M
95M-interface       Foo.bar()='BAZ!'
96M-interface     Fooer.bar()='BAZ!'
97M-virtual           K.bar()='BAZ!'
98M-virtual           L.bar()='BAZ!'
99M-virtual           M.bar()='BAZ!'
100End testing for type M
101Testing for type N
102N-interface       Foo.bar()='foobar'
103N-virtual           N.bar()='foobar'
104End testing for type N
105Testing for type O
106O-interface       Foo.bar()='foobar foobar'
107O-interface      Foo2.bar()='foobar foobar'
108O-virtual           N.bar()='foobar foobar'
109O-virtual           O.bar()='foobar foobar'
110End testing for type O
111Testing for type P
112P-interface       Foo.bar()='not foobar!'
113P-interface      Foo2.bar()='not foobar!'
114P-virtual           N.bar()='not foobar!'
115P-virtual           O.bar()='not foobar!'
116P-virtual           P.bar()='not foobar!'
117End testing for type P
118Testing for type Q
119Q-interface on Foo: bar() threw exception!
120Exception is of type java.lang.IncompatibleClassChangeError
121Q-interface on Foo2: bar() threw exception!
122Exception is of type java.lang.IncompatibleClassChangeError
123Q-interface on Foo3: bar() threw exception!
124Exception is of type java.lang.IncompatibleClassChangeError
125Q-virtual on N: bar() threw exception!
126Exception is of type java.lang.IncompatibleClassChangeError
127Q-virtual on O: bar() threw exception!
128Exception is of type java.lang.IncompatibleClassChangeError
129Q-virtual on Q: bar() threw exception!
130Exception is of type java.lang.IncompatibleClassChangeError
131End testing for type Q
132