update NOTICE and LICENSE
[nit.git] / tests / base_init_inherit5.nit
1 import kernel
2
3 class A
4 init ca(a: Char)
5 do
6 'A'.output
7 a.output
8 end
9
10 fun foo
11 do
12 'a'.output
13 '\n'.output
14 end
15 end
16
17 class B
18 super A
19 init cb(a, b: Char)
20 do
21 'B'.output
22 b.output
23 '{'.output
24 ca(a)
25 '}'.output
26 end
27
28 redef fun foo
29 do
30 'b'.output
31 super
32 end
33 end
34
35 class C
36 super B
37 init cc(a,b,c: Char)
38 do
39 'C'.output
40 c.output
41 '{'.output
42 cb(a,b)
43 '}'.output
44 end
45
46 redef fun foo
47 do
48 'c'.output
49 super
50 end
51 end
52
53 class M
54 super A
55 redef fun foo
56 do
57 'm'.output
58 super
59 end
60 end
61
62 class N
63 super B
64 super M
65 redef fun foo
66 do
67 'n'.output
68 super
69 end
70 end
71
72 class O
73 super N
74 super C
75 init co(a,b,c,o: Char)
76 do
77 'O'.output
78 o.output
79 '{'.output
80 cc(a,b,c)
81 '}'.output
82 end
83 redef fun foo
84 do
85 'o'.output
86 super
87 end
88 end
89
90 (new A.ca('1')).foo
91 (new B.cb('1','2')).foo
92 (new C.cc('1','2','3')).foo
93 (new M.ca('1')).foo
94 (new N.cb('1','2')).foo
95 (new O.co('1','2','3','4')).foo
96