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

Side by Side Diff: pkg/kernel/testcases/closures/closure_in_constructor.dart.expect

Issue 2991853002: Fix duplicate context creation when closures appear in initializers. (Closed)
Patch Set: Created 3 years, 4 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 C1 extends core::Object { 5 class C1 extends core::Object {
6 field dynamic x; 6 field dynamic x;
7 constructor •(dynamic y) → void 7 constructor •(dynamic y) → void
8 : final Vector #context = MakeVector(2), dynamic #t1 = #context[1] = y, self ::C1::x = MakeClosure<() → dynamic>(self::closure#C1#function#function, #context ), super core::Object::•() 8 : final Vector #context = MakeVector(2), dynamic #t1 = #context[1] = y, self ::C1::x = MakeClosure<() → dynamic>(self::closure#C1#function#function, #context ), super core::Object::•()
9 ; 9 ;
10 } 10 }
11 class C2 extends core::Object { 11 class C2 extends core::Object {
Dmitry Stefantsov 2017/07/28 12:36:16 If I'm getting this right, here is the Dart code f
sjindel 2017/07/31 12:06:21 Done.
12 field dynamic x = null; 12 field dynamic x = null;
13 constructor •(dynamic y) → void 13 constructor •(dynamic y) → void
14 : final Vector #context = MakeVector(2), dynamic #t2 = #context[1] = y, supe r core::Object::•() { 14 : final Vector #context = MakeVector(2), this self::C2::#redir(y, #context)
15 final Vector #context = MakeVector(2); 15 ;
16 #context[1] = y; 16 constructor #redir(dynamic y, final Vector #context) → void
17 : dynamic #t2 = #context[1] = y, super core::Object::•() {
17 this.x = MakeClosure<() → dynamic>(self::closure#C2#function#function, #cont ext); 18 this.x = MakeClosure<() → dynamic>(self::closure#C2#function#function, #cont ext);
18 } 19 }
19 } 20 }
20 static method main() → dynamic { 21 static method main() → dynamic {
21 new self::C1::•("hest").x(); 22 new self::C1::•("hest").x();
22 new self::C2::•("naebdyr").x(); 23 new self::C2::•("naebdyr").x();
23 } 24 }
24 static method closure#C1#function#function(Vector #contextParameter) → dynamic { 25 static method closure#C1#function#function(Vector #contextParameter) → dynamic {
25 return core::print("Hello ${#contextParameter[1]}"); 26 return core::print("Hello ${#contextParameter[1]}");
26 } 27 }
27 static method closure#C2#function#function(Vector #contextParameter) → dynamic { 28 static method closure#C2#function#function(Vector #contextParameter) → dynamic {
28 return core::print("Hello ${#contextParameter[1]}"); 29 return core::print("Hello ${#contextParameter[1]}");
29 } 30 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698