Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1447)

Side by Side Diff: pkg/front_end/test/fasta/mixin.dart.direct.expect

Issue 2689303003: Implement type variables in mixin applications. (Closed)
Patch Set: Restore duplication handling and set mixedInType. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 4
5 class B extends self::Object&M1&M2 {
6 constructor •(dynamic value) → void
7 : super self::Object&M1&M2::•()
ahe 2017/02/14 18:12:36 This is invalid-initializer if I don't set mixedIn
8 ;
9 }
5 abstract class M1 extends core::Object { 10 abstract class M1 extends core::Object {
6 constructor •() → void 11 constructor •() → void
7 : super core::Object::•() 12 : super core::Object::•()
8 ; 13 ;
9 method m() → dynamic 14 method m() → dynamic
10 return core::print("M1"); 15 return core::print("M1");
11 } 16 }
12 abstract class M2 extends core::Object { 17 abstract class M2 extends core::Object {
13 constructor •() → void 18 constructor •() → void
14 : super core::Object::•() 19 : super core::Object::•()
15 ; 20 ;
16 method m() → dynamic 21 method m() → dynamic
17 return core::print("M2"); 22 return core::print("M2");
18 } 23 }
19 class C extends self::Object&M1&M2 { 24 class C extends self::Object&M1&M2 {
25 constructor •(dynamic value) → void
26 : super self::Object&M1&M2::•()
27 ;
28 }
29 abstract class G1<T extends core::Object> extends core::Object {
20 constructor •() → void 30 constructor •() → void
21 : super self::Object&M1&M2::•() 31 : super core::Object::•()
32 ;
33 method m() → dynamic
34 return core::print(self::G1::T);
35 }
36 class D<S extends core::Object> extends self::D^G1<self::D::S> {
37 constructor •() → void
38 : super self::D^G1::•()
22 ; 39 ;
23 } 40 }
24 abstract class Object&M1 extends core::Object implements self::M1 { 41 abstract class Object&M1 extends core::Object implements self::M1 {
25 constructor •() → void 42 constructor •() → void
26 : super core::Object::•() 43 : super core::Object::•()
27 ; 44 ;
28 method m() → dynamic 45 method m() → dynamic
29 return core::print("M1"); 46 return core::print("M1");
30 } 47 }
31 abstract class Object&M1&M2 extends self::Object&M1 implements self::M2 { 48 abstract class Object&M1&M2 extends self::Object&M1 implements self::M2 {
32 constructor •() → void 49 constructor •() → void
33 : super self::Object&M1::•() 50 : super self::Object&M1::•()
34 ; 51 ;
35 method m() → dynamic 52 method m() → dynamic
36 return core::print("M2"); 53 return core::print("M2");
37 } 54 }
55 abstract class Object&M1 extends core::Object implements self::M1 {
56 constructor •() → void
57 : super core::Object::•()
58 ;
59 method m() → dynamic
60 return core::print("M1");
61 }
62 abstract class Object&M1&M2 extends self::Object&M1 implements self::M2 {
63 constructor •() → void
64 : super self::Object&M1::•()
65 ;
66 method m() → dynamic
67 return core::print("M2");
68 }
69 abstract class D^G1<S extends core::Object> extends core::Object implements self ::G1<self::D^G1::S> {
70 constructor •() → void
71 : super core::Object::•()
72 ;
73 method m() → dynamic
74 return core::print(self::D^G1::S);
75 }
38 static method main() → dynamic { 76 static method main() → dynamic {
39 new self::C::•().m(); 77 new self::B::•(null).m();
78 new self::C::•(null).m();
79 new self::D::•<dynamic>().m();
80 new self::D::•<core::int>().m();
81 new self::D::•<core::List<core::int>>().m();
40 } 82 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698