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 •() → void | 7 constructor •() → self::Super<self::Super::S> |
8 : super core::Object::•() | 8 : super core::Object::•(); |
9 ; | |
10 method foo() → dynamic | 9 method foo() → dynamic |
11 return 40; | 10 return 40; |
12 method f() → dynamic | 11 method f() → dynamic |
13 return 3; | 12 return 3; |
14 } | 13 } |
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> { | 14 class C<V extends core::Object> extends self::Super+Mixin#3<self::C::V, self::C:
:V> { |
| 15 constructor •() → self::C<self::C::V> |
| 16 : super self::Super+Mixin#3::•(); |
16 } | 17 } |
17 class C<V extends core::Object> extends self::Super&Mixin^#T0^#T0<self::C::V> { | 18 class D extends self::Super+Mixin#2<dynamic> { |
18 constructor •() → void | 19 constructor •() → self::D |
19 : super self::Super::•() | 20 : super self::Super+Mixin#2::•(); |
20 ; | |
21 } | 21 } |
22 abstract class Super&Mixin = self::Super<dynamic> with mix::Mixin<dynamic> { | 22 class C2<V extends core::Object> extends self::Super+Mixin#1<self::C2::V, self::
C2::V> { |
| 23 constructor •() → self::Super<self::C2::V> |
| 24 : super self::Super+Mixin#1::•(); |
23 } | 25 } |
24 class D extends self::Super&Mixin { | 26 class D2 extends self::Super+Mixin#0<dynamic> { |
25 constructor •() → void | 27 constructor •() → self::Super<dynamic> |
26 : super self::Super::•() | 28 : super self::Super+Mixin#0::•(); |
27 ; | |
28 } | 29 } |
29 class C2<V extends core::Object> = self::Super<self::C2::V> with mix::Mixin<self
::C2::V> { | 30 abstract class Super+Mixin#0<T extends core::Object> extends self::Super<dynamic
> implements mix::Mixin<dynamic> { |
30 constructor •() → void | 31 field self::Super+Mixin#0::T t; |
31 : super self::Super::•() | 32 field dynamic z; |
32 ; | 33 field dynamic y; |
| 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()); |
33 } | 49 } |
34 class D2 = self::Super<dynamic> with mix::Mixin<dynamic> { | 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> { |
35 constructor •() → void | 51 field self::Super+Mixin#1::T t; |
36 : super self::Super::•() | 52 field dynamic z; |
37 ; | 53 field dynamic y; |
| 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()); |
38 } | 109 } |
39 static method main() → dynamic { | 110 static method main() → dynamic { |
40 core::print(new self::C::•<dynamic>().foo()); | 111 core::print(new self::C::•<dynamic>().foo()); |
41 core::print(new self::C2::•<dynamic>().foo()); | 112 core::print(new self::C2::•<dynamic>().foo()); |
42 } | 113 } |
OLD | NEW |