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

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

Issue 2989563002: Preserve type variables in closure conversion. (Closed)
Patch Set: Visit more children, review comments. 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
(Empty)
1 library;
2 import self as self;
3 import "dart:core" as core;
4
5 class C<T extends core::Object, S extends core::Object> extends core::Object {
6 constructor internal() → void
7 : super core::Object::•()
8 ;
9 method foo(self::C::S s) → dynamic {
10 final Vector #context = MakeVector(2);
11 #context[1] = this;
12 return MakeClosure<(dynamic) → dynamic>(self::closure#C#foo#function, #conte xt);
13 }
14 method bar() → dynamic {
15 self::C<self::C::T, self::C::S> self = this;
16 }
17 method baz() → dynamic {
18 return MakeClosure<() → dynamic>(self::closure#C#baz#function, null);
19 }
20 static factory •<T extends core::Object, S extends core::Object>() → self::C<s elf::C::•::T, self::C::•::S> {
21 final () → dynamic local = MakeClosure<() → dynamic>(self::closure#C#functio n#local, null);
22 return local.call();
23 }
24 }
25 static method main(dynamic arguments) → dynamic {
26 core::print(self::C::•<core::String, core::String>().foo(null).call(arguments. first));
27 dynamic c = self::C::•<core::int, core::int>().baz().call().call();
28 if(!(c is self::C<core::int, core::int>))
29 throw "${c} fails type test 'is C<int, int>'";
30 if(c is self::C<core::String, core::String>) {
31 throw "${c{self::C<core::String, core::String>}} passes type test 'is C<Stri ng, String>'";
32 }
33 core::print(c);
34 }
35 static method closure#C#foo#function(Vector #contextParameter, dynamic x) → dyna mic {
36 dynamic y = x;
37 core::Object z = y;
38 self::C<dynamic, dynamic> self = #contextParameter[1];
39 return z as dynamic;
40 }
41 static method closure#C#baz#function#function(Vector #contextParameter) → dynami c {
42 return self::C::•<dynamic, dynamic>();
43 }
44 static method closure#C#baz#function(Vector #contextParameter) → dynamic {
45 return MakeClosure<() → dynamic>(self::closure#C#baz#function#function, #conte xtParameter);
46 }
47 static method closure#C#function#local(Vector #contextParameter) → dynamic {
48 self::C<dynamic, dynamic> self = new self::C::internal<dynamic, dynamic>();
49 return self;
50 }
OLDNEW
« no previous file with comments | « pkg/kernel/testcases/closures/type_variables.dart ('k') | pkg/kernel/testcases/closures_type_vars/type_variables.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698