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

Side by Side Diff: pkg/dev_compiler/test/codegen_expected/closure.js

Issue 2867493002: fix #27256, track type bounds for generic functions (Closed)
Patch Set: fix Created 3 years, 7 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 export const closure = Object.create(null); 1 export const closure = Object.create(null);
2 import { core, js, dart, dartx } from 'dart_sdk'; 2 import { core, js, dart, dartx } from 'dart_sdk';
3 let dynamic__Toint = () => (dynamic__Toint = dart.constFn(dart.functionType(core .int, [dart.dynamic], [dart.dynamic])))(); 3 let dynamic__Toint = () => (dynamic__Toint = dart.constFn(dart.fnTypeFuzzy(core. int, [dart.dynamic], [dart.dynamic])))();
4 let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.functionT ype(dart.dynamic, [dart.dynamic], {y: core.String, z: dart.dynamic})))(); 4 let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.fnTypeFuz zy(dart.dynamic, [dart.dynamic], {y: core.String, z: dart.dynamic})))();
5 let StringToList = () => (StringToList = dart.constFn(dart.functionType(core.Lis t, [core.String])))(); 5 let StringToList = () => (StringToList = dart.constFn(dart.fnTypeFuzzy(core.List , [core.String])))();
6 let ListOfint = () => (ListOfint = dart.constFn(core.List$(core.int)))(); 6 let ListOfint = () => (ListOfint = dart.constFn(core.List$(core.int)))();
7 let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.functionType( dart.dynamic, [dart.dynamic])))(); 7 let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.fnTypeFuzzy(d art.dynamic, [dart.dynamic])))();
8 let FnToListOfint = () => (FnToListOfint = dart.constFn(dart.functionType(ListOf int(), [dynamicTodynamic()])))(); 8 let FnToListOfint = () => (FnToListOfint = dart.constFn(dart.fnTypeFuzzy(ListOfi nt(), [dynamicTodynamic()])))();
9 let MapOfMap$Map = () => (MapOfMap$Map = dart.constFn(core.Map$(core.Map, core.M ap)))(); 9 let MapOfMap$Map = () => (MapOfMap$Map = dart.constFn(core.Map$(core.Map, core.M ap)))();
10 let Foo = () => (Foo = dart.constFn(closure.Foo$()))(); 10 let Foo = () => (Foo = dart.constFn(closure.Foo$()))();
11 let ListOfTAndTToListOfT = () => (ListOfTAndTToListOfT = dart.constFn(dart.defin iteFunctionType(T => [core.List$(T), [core.List$(T), T]])))(); 11 let ListOfTAndTToListOfT = () => (ListOfTAndTToListOfT = dart.constFn(dart.gFnTy pe(T => [core.List$(T), [core.List$(T), T]])))();
12 let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionTyp e(dart.void, [dart.dynamic])))(); 12 let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.fnType(dart.void, [ dart.dynamic])))();
13 let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core .Null, [])))(); 13 let VoidToNull = () => (VoidToNull = dart.constFn(dart.fnType(core.Null, [])))() ;
14 closure.generic_function = function(T) { 14 closure.generic_function = function(T) {
15 return (items: core.List<T>, seed: T): core.List<T> => { 15 return (items: core.List<T>, seed: T): core.List<T> => {
16 let strings = items[dartx.map](core.String)(dart.fn((i: T): string => dart.s tr`${i}`, dart.definiteFunctionType(core.String, [T])))[dartx.toList](); 16 let strings = items[dartx.map](core.String)(dart.fn((i: T): string => dart.s tr`${i}`, dart.fnType(core.String, [T])))[dartx.toList]();
17 return items; 17 return items;
18 }; 18 };
19 }; 19 };
20 dart.fn(closure.generic_function, ListOfTAndTToListOfT()); 20 dart.fn(closure.generic_function, ListOfTAndTToListOfT());
21 closure.Callback = dart.typedef('Callback', () => dart.functionType(dart.void, [ ], {i: core.int})); 21 closure.Callback = dart.typedef('Callback', () => dart.fnTypeFuzzy(dart.void, [] , {i: core.int}));
22 closure.Foo$ = dart.generic(T => { 22 closure.Foo$ = dart.generic(T => {
23 let FooOfT = () => (FooOfT = dart.constFn(closure.Foo$(T)))(); 23 let FooOfT = () => (FooOfT = dart.constFn(closure.Foo$(T)))();
24 class Foo<T> extends core.Object { 24 class Foo<T> extends core.Object {
25 i: number; 25 i: number;
26 b: boolean; 26 b: boolean;
27 s: string; 27 s: string;
28 v: T; 28 v: T;
29 static some_static_constant: string; 29 static some_static_constant: string;
30 static some_static_final: string; 30 static some_static_final: string;
31 static some_static_var: string; 31 static some_static_var: string;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 const b = Symbol("Foo.b"); 91 const b = Symbol("Foo.b");
92 const s = Symbol("Foo.s"); 92 const s = Symbol("Foo.s");
93 const v$ = Symbol("Foo.v"); 93 const v$ = Symbol("Foo.v");
94 dart.setSignature(Foo, { 94 dart.setSignature(Foo, {
95 fields: () => ({ 95 fields: () => ({
96 i: dart.finalFieldType(core.int), 96 i: dart.finalFieldType(core.int),
97 b: dart.fieldType(core.bool), 97 b: dart.fieldType(core.bool),
98 s: dart.fieldType(core.String), 98 s: dart.fieldType(core.String),
99 v: dart.fieldType(T) 99 v: dart.fieldType(T)
100 }), 100 }),
101 getters: () => ({prop: dart.definiteFunctionType(core.String, [])}), 101 getters: () => ({prop: dart.fnType(core.String, [])}),
102 setters: () => ({prop: dart.definiteFunctionType(dart.void, [core.String])}) , 102 setters: () => ({prop: dart.fnType(dart.void, [core.String])}),
103 methods: () => ({ 103 methods: () => ({
104 untyped_method: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dar t.dynamic]), 104 untyped_method: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic]),
105 pass: dart.definiteFunctionType(T, [T]), 105 pass: dart.fnType(T, [T]),
106 typed_method: dart.definiteFunctionType(core.String, [closure.Foo, core.Li st, core.int, core.num, core.double, core.bool, core.String, js.JsArray, js.JsOb ject, js.JsFunction]), 106 typed_method: dart.fnType(core.String, [closure.Foo, core.List, core.int, core.num, core.double, core.bool, core.String, js.JsArray, js.JsObject, js.JsFun ction]),
107 optional_params: dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [ dart.dynamic, core.int]), 107 optional_params: dart.fnType(dart.dynamic, [dart.dynamic], [dart.dynamic, core.int]),
108 nullary_method: dart.definiteFunctionType(dart.dynamic, []), 108 nullary_method: dart.fnType(dart.dynamic, []),
109 function_params: dart.definiteFunctionType(dart.dynamic, [dynamic__Toint() , dynamic__Todynamic(), closure.Callback]), 109 function_params: dart.fnType(dart.dynamic, [dynamic__Toint(), dynamic__Tod ynamic(), closure.Callback]),
110 run: dart.definiteFunctionType(dart.dynamic, [core.List, core.String, Stri ngToList(), FnToListOfint()], {h: MapOfMap$Map()}) 110 run: dart.fnType(dart.dynamic, [core.List, core.String, StringToList(), Fn ToListOfint()], {h: MapOfMap$Map()})
111 }), 111 }),
112 statics: () => ({named_params: dart.definiteFunctionType(dart.dynamic, [dart .dynamic], {b: dart.dynamic, c: core.int})}), 112 statics: () => ({named_params: dart.fnType(dart.dynamic, [dart.dynamic], {b: dart.dynamic, c: core.int})}),
113 names: ['named_params'] 113 names: ['named_params']
114 }); 114 });
115 return Foo; 115 return Foo;
116 }); 116 });
117 closure.Foo = Foo(); 117 closure.Foo = Foo();
118 dart.defineLazy(closure.Foo, { 118 dart.defineLazy(closure.Foo, {
119 get some_static_constant() { 119 get some_static_constant() {
120 return "abc"; 120 return "abc";
121 }, 121 },
122 get some_static_final() { 122 get some_static_final() {
(...skipping 28 matching lines...) Expand all
151 return "abc"; 151 return "abc";
152 }, 152 },
153 get some_top_level_var() { 153 get some_top_level_var() {
154 return "abc"; 154 return "abc";
155 }, 155 },
156 set some_top_level_var(_) {} 156 set some_top_level_var(_) {}
157 }); 157 });
158 dart.trackLibraries("closure", { 158 dart.trackLibraries("closure", {
159 "closure.dart": closure 159 "closure.dart": closure
160 }, null); 160 }, null);
OLDNEW
« no previous file with comments | « pkg/dev_compiler/test/codegen_expected/async_helper.js ('k') | pkg/dev_compiler/test/codegen_expected/destructuring.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698