OLD | NEW |
1 library; | 1 library; |
2 import self as self; | 2 import self as self; |
3 import "dart:core" as core; | 3 import "dart:core" as core; |
4 import "./mixin_library.dart" as mix; | 4 import "./mixin_library.dart" as mix; |
5 | 5 |
6 class Super<S extends core::Object> extends core::Object { | 6 class Super<S extends core::Object> extends core::Object { |
7 constructor •() → self::Super<self::Super::S> | 7 constructor •() → void |
8 : super core::Object::•(); | 8 : super core::Object::•() |
| 9 ; |
9 method foo() → dynamic | 10 method foo() → dynamic |
10 return 40; | 11 return 40; |
11 method f() → dynamic | 12 method f() → dynamic |
12 return 3; | 13 return 3; |
13 } | 14 } |
14 class C<V extends core::Object> extends self::Super+Mixin#3<self::C::V, self::C:
:V> { | 15 abstract class Super&Mixin^#T0^#T0<#T0 extends core::Object> = self::Super<self:
:Super&Mixin^#T0^#T0::#T0> with mix::Mixin<self::Super&Mixin^#T0^#T0::#T0> { |
15 constructor •() → self::C<self::C::V> | |
16 : super self::Super+Mixin#3::•(); | |
17 } | 16 } |
18 class D extends self::Super+Mixin#2<dynamic> { | 17 class C<V extends core::Object> extends self::Super&Mixin^#T0^#T0<self::C::V> { |
19 constructor •() → self::D | 18 constructor •() → void |
20 : super self::Super+Mixin#2::•(); | 19 : super self::Super::•() |
| 20 ; |
21 } | 21 } |
22 class C2<V extends core::Object> extends self::Super+Mixin#1<self::C2::V, self::
C2::V> { | 22 abstract class Super&Mixin = self::Super<dynamic> with mix::Mixin<dynamic> { |
23 constructor •() → self::Super<self::C2::V> | |
24 : super self::Super+Mixin#1::•(); | |
25 } | 23 } |
26 class D2 extends self::Super+Mixin#0<dynamic> { | 24 class D extends self::Super&Mixin { |
27 constructor •() → self::Super<dynamic> | 25 constructor •() → void |
28 : super self::Super+Mixin#0::•(); | 26 : super self::Super::•() |
| 27 ; |
29 } | 28 } |
30 abstract class Super+Mixin#0<T extends core::Object> extends self::Super<dynamic
> implements mix::Mixin<dynamic> { | 29 class C2<V extends core::Object> = self::Super<self::C2::V> with mix::Mixin<self
::C2::V> { |
31 field self::Super+Mixin#0::T t; | 30 constructor •() → void |
32 field dynamic z; | 31 : super self::Super::•() |
33 field dynamic y; | 32 ; |
34 field dynamic x; | |
35 constructor •() → self::Super<dynamic> | |
36 : self::Super+Mixin#0::x = mix::f(), super self::Super::•(); | |
37 method publicMethod() → dynamic | |
38 return this._privateMethod(); | |
39 method _privateMethod() → dynamic | |
40 return 49; | |
41 method l() → dynamic | |
42 return mix::_private(); | |
43 method h() → dynamic | |
44 return mix::V(); | |
45 method g(self::Super+Mixin#0::T a) → self::Super+Mixin#0::T | |
46 return null; | |
47 method foo() → dynamic | |
48 return super.{self::Super::foo}().+(mix::f()); | |
49 } | 33 } |
50 abstract class Super+Mixin#1<T extends core::Object, V extends core::Object> ext
ends self::Super<self::Super+Mixin#1::V> implements mix::Mixin<self::Super+Mixin
#1::V> { | 34 class D2 = self::Super<dynamic> with mix::Mixin<dynamic> { |
51 field self::Super+Mixin#1::T t; | 35 constructor •() → void |
52 field dynamic z; | 36 : super self::Super::•() |
53 field dynamic y; | 37 ; |
54 field dynamic x; | |
55 constructor •() → self::Super<self::Super+Mixin#1::V> | |
56 : self::Super+Mixin#1::x = mix::f(), super self::Super::•(); | |
57 method publicMethod() → dynamic | |
58 return this._privateMethod(); | |
59 method _privateMethod() → dynamic | |
60 return 49; | |
61 method l() → dynamic | |
62 return mix::_private(); | |
63 method h() → dynamic | |
64 return mix::V(); | |
65 method g(self::Super+Mixin#1::T a) → self::Super+Mixin#1::T | |
66 return null; | |
67 method foo() → dynamic | |
68 return super.{self::Super::foo}().+(mix::f()); | |
69 } | |
70 abstract class Super+Mixin#2<T extends core::Object> extends self::Super<dynamic
> implements mix::Mixin<dynamic> { | |
71 field self::Super+Mixin#2::T t; | |
72 field dynamic z; | |
73 field dynamic y; | |
74 field dynamic x; | |
75 constructor •() → self::Super<dynamic> | |
76 : self::Super+Mixin#2::x = mix::f(), super self::Super::•(); | |
77 method publicMethod() → dynamic | |
78 return this._privateMethod(); | |
79 method _privateMethod() → dynamic | |
80 return 49; | |
81 method l() → dynamic | |
82 return mix::_private(); | |
83 method h() → dynamic | |
84 return mix::V(); | |
85 method g(self::Super+Mixin#2::T a) → self::Super+Mixin#2::T | |
86 return null; | |
87 method foo() → dynamic | |
88 return super.{self::Super::foo}().+(mix::f()); | |
89 } | |
90 abstract class Super+Mixin#3<T extends core::Object, V extends core::Object> ext
ends self::Super<self::Super+Mixin#3::V> implements mix::Mixin<self::Super+Mixin
#3::V> { | |
91 field self::Super+Mixin#3::T t; | |
92 field dynamic z; | |
93 field dynamic y; | |
94 field dynamic x; | |
95 constructor •() → self::Super<self::Super+Mixin#3::V> | |
96 : self::Super+Mixin#3::x = mix::f(), super self::Super::•(); | |
97 method publicMethod() → dynamic | |
98 return this._privateMethod(); | |
99 method _privateMethod() → dynamic | |
100 return 49; | |
101 method l() → dynamic | |
102 return mix::_private(); | |
103 method h() → dynamic | |
104 return mix::V(); | |
105 method g(self::Super+Mixin#3::T a) → self::Super+Mixin#3::T | |
106 return null; | |
107 method foo() → dynamic | |
108 return super.{self::Super::foo}().+(mix::f()); | |
109 } | 38 } |
110 static method main() → dynamic { | 39 static method main() → dynamic { |
111 core::print(new self::C::•<dynamic>().foo()); | 40 core::print(new self::C::•<dynamic>().foo()); |
112 core::print(new self::C2::•<dynamic>().foo()); | 41 core::print(new self::C2::•<dynamic>().foo()); |
113 } | 42 } |
OLD | NEW |