Index: pkg/dev_compiler/test/browser/runtime_tests.js |
diff --git a/pkg/dev_compiler/test/browser/runtime_tests.js b/pkg/dev_compiler/test/browser/runtime_tests.js |
index 48c31d43b631929b43f86aaabd5f6aaa35914031..334c8b7837138d58d8854733808d13f925cffdb5 100644 |
--- a/pkg/dev_compiler/test/browser/runtime_tests.js |
+++ b/pkg/dev_compiler/test/browser/runtime_tests.js |
@@ -159,7 +159,7 @@ define(['dart_sdk'], function(dart_sdk) { |
let instanceOf = dart.is; |
let strongInstanceOf = dart.strongInstanceOf; |
let getReifiedType = dart.getReifiedType; |
- let functionType = dart.functionType; |
+ let fnTypeFuzzy = dart.fnTypeFuzzy; |
let typedef = dart.typedef; |
let isSubtype = dart.isSubtype; |
@@ -184,69 +184,69 @@ define(['dart_sdk'], function(dart_sdk) { |
let BB = BB$(); |
class CC extends BB$(String, List) {} |
- let Func2 = typedef('Func2', () => functionType(dynamic, [dynamic, dynamic])); |
- let Foo = typedef('Foo', () => functionType(B, [B, String])); |
+ let Func2 = typedef('Func2', () => fnTypeFuzzy(dynamic, [dynamic, dynamic])); |
+ let Foo = typedef('Foo', () => fnTypeFuzzy(B, [B, String])); |
- let FuncG$ = generic((T, U) => typedef('FuncG', () => functionType(T, [T, U]))) |
+ let FuncG$ = generic((T, U) => typedef('FuncG', () => fnTypeFuzzy(T, [T, U]))) |
let FuncG = FuncG$(); |
// TODO(vsm): Revisit when we encode types on functions properly. |
// A bar1(C c, String s) => null; |
function bar1(c, s) { return null; } |
- dart.fn(bar1, dart.definiteFunctionType(A, [C, String])); |
+ dart.fn(bar1, dart.fnType(A, [C, String])); |
// bar2(B b, String s) => null; |
function bar2(b, s) { return null; } |
- dart.fn(bar2, dart.definiteFunctionType(dynamic, [B, String])); |
+ dart.fn(bar2, dart.fnType(dynamic, [B, String])); |
// B bar3(B b, Object o) => null; |
function bar3(b, o) { return null; } |
- dart.fn(bar3, dart.definiteFunctionType(B, [B, Object])); |
+ dart.fn(bar3, dart.fnType(B, [B, Object])); |
// B bar4(B b, o) => null; |
function bar4(b, o) { return null; } |
- dart.fn(bar4, dart.definiteFunctionType(B, [B, dynamic])); |
+ dart.fn(bar4, dart.fnType(B, [B, dynamic])); |
// C bar5(A a, Object o) => null; |
function bar5(a, o) { return null; } |
- dart.fn(bar5, dart.definiteFunctionType(C, [A, Object])); |
+ dart.fn(bar5, dart.fnType(C, [A, Object])); |
// B bar6(B b, String s, String o) => null; |
function bar6(b, s, o) { return null; } |
- dart.fn(bar6, dart.definiteFunctionType(B, [B, String, String])); |
+ dart.fn(bar6, dart.fnType(B, [B, String, String])); |
// B bar7(B b, String s, [Object o]) => null; |
function bar7(b, s, o) { return null; } |
- dart.fn(bar7, dart.definiteFunctionType(B, [B, String], [Object])); |
+ dart.fn(bar7, dart.fnType(B, [B, String], [Object])); |
// B bar8(B b, String s, {Object p}) => null; |
function bar8(b, s, o) { return null; } |
- dart.fn(bar8, dart.definiteFunctionType(B, [B, String], {p: Object})); |
+ dart.fn(bar8, dart.fnType(B, [B, String], {p: Object})); |
let cls1 = dart.fn((c, s) => { return null; }, |
- dart.definiteFunctionType(A, [C, String])); |
+ dart.fnType(A, [C, String])); |
let cls2 = dart.fn((b, s) => { return null; }, |
- dart.definiteFunctionType(dynamic, [B, String])); |
+ dart.fnType(dynamic, [B, String])); |
let cls3 = dart.fn((b, o) => { return null; }, |
- dart.definiteFunctionType(B, [B, Object])); |
+ dart.fnType(B, [B, Object])); |
let cls4 = dart.fn((b, o) => { return null; }, |
- dart.definiteFunctionType(B, [B, dynamic])); |
+ dart.fnType(B, [B, dynamic])); |
let cls5 = dart.fn((a, o) => { return null; }, |
- dart.definiteFunctionType(C, [A, Object])); |
+ dart.fnType(C, [A, Object])); |
let cls6 = dart.fn((b, s, o) => { return null; }, |
- dart.definiteFunctionType(B, [B, String, String])); |
+ dart.fnType(B, [B, String, String])); |
let cls7 = dart.fn((b, s, o) => { return null; }, |
- dart.definiteFunctionType(B, [B, String], [Object])); |
+ dart.fnType(B, [B, String], [Object])); |
let cls8 = |
dart.fn((b, s, o) => { return null; }, |
- dart.definiteFunctionType(B, [B, String], {p: Object})); |
+ dart.fnType(B, [B, String], {p: Object})); |
function checkType(x, type, expectedTrue, strongOnly) { |
if (expectedTrue === undefined) expectedTrue = true; |
@@ -411,18 +411,18 @@ define(['dart_sdk'], function(dart_sdk) { |
dart.defineNamedConstructor(C, 'named'); |
dart.setSignature(C, { |
constructors: () => ({ |
- new: dart.definiteFunctionType(C, [core.int]), |
- named: dart.definiteFunctionType(C, [core.int, core.int]) |
+ new: dart.fnType(C, [core.int]), |
+ named: dart.fnType(C, [core.int, core.int]) |
}) |
}); |
let getType = dart.classGetConstructorType; |
- isSubtype(getType(C), dart.functionType(C, [core.int])); |
- isSubtype(getType(C), dart.functionType(C, [core.String]), false); |
- isSubtype(getType(C, 'new'), dart.functionType(C, [core.int])); |
- isSubtype(getType(C, 'new'), dart.functionType(C, [core.String]), false); |
- isSubtype(getType(C, 'named'), dart.functionType(C, [core.int, core.int])); |
+ isSubtype(getType(C), dart.fnTypeFuzzy(C, [core.int])); |
+ isSubtype(getType(C), dart.fnTypeFuzzy(C, [core.String]), false); |
+ isSubtype(getType(C, 'new'), dart.fnTypeFuzzy(C, [core.int])); |
+ isSubtype(getType(C, 'new'), dart.fnTypeFuzzy(C, [core.String]), false); |
+ isSubtype(getType(C, 'named'), dart.fnTypeFuzzy(C, [core.int, core.int])); |
isSubtype(getType(C, 'named'), |
- dart.functionType(C, [core.int, core.String]), false); |
+ dart.fnTypeFuzzy(C, [core.int, core.String]), false); |
}); |
test('generic and inheritance', () => { |
@@ -499,7 +499,7 @@ define(['dart_sdk'], function(dart_sdk) { |
checkType(Map, core.Type, true); |
checkType(Map$(int, String), core.Type, true); |
checkType(Func2, core.Type, true); |
- checkType(functionType(dynamic, [dynamic]), core.Type, true); |
+ checkType(fnTypeFuzzy(dynamic, [dynamic]), core.Type, true); |
checkType(core.Type, core.Type, true); |
checkType(3, core.Type, false); |
@@ -511,41 +511,41 @@ define(['dart_sdk'], function(dart_sdk) { |
// - param types: Dart is bivariant. We're contravariant. |
expect(isGroundType(Func2), true); |
expect(isGroundType(Foo), false); |
- expect(isGroundType(functionType(B, [B, String])), false); |
+ expect(isGroundType(fnTypeFuzzy(B, [B, String])), false); |
checkType(bar1, Foo, false, true); |
checkType(cls1, Foo, false, true); |
- checkType(bar1, functionType(B, [B, String]), false, true); |
- checkType(cls1, functionType(B, [B, String]), false, true); |
+ checkType(bar1, fnTypeFuzzy(B, [B, String]), false, true); |
+ checkType(cls1, fnTypeFuzzy(B, [B, String]), false, true); |
checkType(bar2, Foo, false, true); |
checkType(cls2, Foo, false, true); |
- checkType(bar2, functionType(B, [B, String]), false, true); |
- checkType(cls2, functionType(B, [B, String]), false, true); |
+ checkType(bar2, fnTypeFuzzy(B, [B, String]), false, true); |
+ checkType(cls2, fnTypeFuzzy(B, [B, String]), false, true); |
checkType(bar3, Foo); |
checkType(cls3, Foo); |
- checkType(bar3, functionType(B, [B, String])); |
- checkType(cls3, functionType(B, [B, String])); |
+ checkType(bar3, fnTypeFuzzy(B, [B, String])); |
+ checkType(cls3, fnTypeFuzzy(B, [B, String])); |
checkType(bar4, Foo, true); |
checkType(cls4, Foo, true); |
- checkType(bar4, functionType(B, [B, String]), true); |
- checkType(cls4, functionType(B, [B, String]), true); |
+ checkType(bar4, fnTypeFuzzy(B, [B, String]), true); |
+ checkType(cls4, fnTypeFuzzy(B, [B, String]), true); |
checkType(bar5, Foo); |
checkType(cls5, Foo); |
- checkType(bar5, functionType(B, [B, String])); |
- checkType(cls5, functionType(B, [B, String])); |
+ checkType(bar5, fnTypeFuzzy(B, [B, String])); |
+ checkType(cls5, fnTypeFuzzy(B, [B, String])); |
checkType(bar6, Foo, false); |
checkType(cls6, Foo, false); |
- checkType(bar6, functionType(B, [B, String]), false); |
- checkType(cls6, functionType(B, [B, String]), false); |
+ checkType(bar6, fnTypeFuzzy(B, [B, String]), false); |
+ checkType(cls6, fnTypeFuzzy(B, [B, String]), false); |
checkType(bar7, Foo); |
checkType(cls7, Foo); |
- checkType(bar7, functionType(B, [B, String])); |
- checkType(cls7, functionType(B, [B, String])); |
+ checkType(bar7, fnTypeFuzzy(B, [B, String])); |
+ checkType(cls7, fnTypeFuzzy(B, [B, String])); |
checkType(bar7, getReifiedType(bar6)); |
checkType(cls7, getReifiedType(bar6)); |
checkType(bar8, Foo); |
checkType(cls8, Foo); |
- checkType(bar8, functionType(B, [B, String])); |
- checkType(cls8, functionType(B, [B, String])); |
+ checkType(bar8, fnTypeFuzzy(B, [B, String])); |
+ checkType(cls8, fnTypeFuzzy(B, [B, String])); |
checkType(bar8, getReifiedType(bar6), false); |
checkType(cls8, getReifiedType(bar6), false); |
checkType(bar7, getReifiedType(bar8), false); |
@@ -566,12 +566,12 @@ define(['dart_sdk'], function(dart_sdk) { |
function dd2d(x, y) {return x}; |
dart.fn(dd2d); |
function ii2i(x, y) {return x}; |
- dart.fn(ii2i, dart.definiteFunctionType(core.int, [core.int, core.int])); |
+ dart.fn(ii2i, dart.fnType(core.int, [core.int, core.int])); |
function ii_2i(x, y) {return x}; |
- dart.fn(ii_2i, dart.definiteFunctionType(core.int, [core.int], [core.int])); |
+ dart.fn(ii_2i, dart.fnType(core.int, [core.int], [core.int])); |
function i_i2i(x, opts) {return x}; |
dart.fn(i_i2i, |
- dart.definiteFunctionType(core.int, [core.int], {extra: core.int})); |
+ dart.fnType(core.int, [core.int], {extra: core.int})); |
assert.equal(dart.dcall(dd2d, 0, 1), 0); |
assert.equal(dart.dcall(dd2d, "hello", "world"), "hello"); |
@@ -602,7 +602,7 @@ define(['dart_sdk'], function(dart_sdk) { |
class Tester extends core.Object { |
new() { |
this.f = dart.fn(x => x, |
- dart.definiteFunctionType(core.int, [core.int])); |
+ dart.fnType(core.int, [core.int])); |
this.me = this; |
} |
m(x, y) {return x;} |
@@ -611,11 +611,11 @@ define(['dart_sdk'], function(dart_sdk) { |
} |
dart.setSignature(Tester, { |
methods: () => ({ |
- m: dart.definiteFunctionType(core.int, [core.int, core.int]), |
- call: dart.definiteFunctionType(core.int, [core.int]) |
+ m: dart.fnType(core.int, [core.int, core.int]), |
+ call: dart.fnType(core.int, [core.int]) |
}), |
statics: () => ({ |
- s: dart.definiteFunctionType(core.String, [core.String]) |
+ s: dart.fnType(core.String, [core.String]) |
}), |
names: ['s'] |
}) |
@@ -657,62 +657,62 @@ define(['dart_sdk'], function(dart_sdk) { |
// Test some generated code |
// Test the lazy path |
checkType(core.identityHashCode, |
- dart.functionType(core.int, [core.Object])); |
+ dart.fnTypeFuzzy(core.int, [core.Object])); |
// Test the normal path |
checkType(core.identical, |
- dart.functionType(core.bool, |
+ dart.fnTypeFuzzy(core.bool, |
[core.Object, core.Object])); |
// Hand crafted tests |
// All dynamic |
function dd2d(x, y) {return x}; |
dart.fn(dd2d); |
- checkType(dd2d, dart.functionType(dart.dynamic, |
+ checkType(dd2d, dart.fnTypeFuzzy(dart.dynamic, |
[dart.dynamic, dart.dynamic])); |
// Set the type eagerly |
function ii2i(x, y) {return x}; |
- dart.fn(ii2i, dart.definiteFunctionType(core.int, [core.int, core.int])); |
- checkType(ii2i, dart.functionType(core.int, |
+ dart.fn(ii2i, dart.fnType(core.int, [core.int, core.int])); |
+ checkType(ii2i, dart.fnTypeFuzzy(core.int, |
[core.int, core.int])); |
// Set the type lazily |
function ss2s(x, y) {return x}; |
var coreString; |
dart.lazyFn(ss2s, |
- () => dart.definiteFunctionType(coreString, |
+ () => dart.fnType(coreString, |
[coreString, coreString])); |
coreString = core.String; |
- checkType(ss2s, dart.functionType(core.String, |
+ checkType(ss2s, dart.fnTypeFuzzy(core.String, |
[core.String, core.String])); |
// Optional types |
function ii_2i(x, y) {return x}; |
- dart.fn(ii_2i, dart.definiteFunctionType(core.int, [core.int], [core.int])); |
- checkType(ii_2i, dart.functionType(core.int, [core.int], |
+ dart.fn(ii_2i, dart.fnType(core.int, [core.int], [core.int])); |
+ checkType(ii_2i, dart.fnTypeFuzzy(core.int, [core.int], |
[core.int])); |
- checkType(ii_2i, dart.functionType(core.int, [core.int, |
+ checkType(ii_2i, dart.fnTypeFuzzy(core.int, [core.int, |
core.int])); |
- checkType(ii_2i, dart.functionType(core.int, [], [core.int, |
+ checkType(ii_2i, dart.fnTypeFuzzy(core.int, [], [core.int, |
core.int]), |
false); |
- checkType(ii_2i, dart.functionType(core.int, [core.int], |
+ checkType(ii_2i, dart.fnTypeFuzzy(core.int, [core.int], |
{extra: core.int}), false); |
// Named types |
function i_i2i(x, opts) {return x}; |
- dart.fn(i_i2i, dart.definiteFunctionType(core.int, [core.int], |
+ dart.fn(i_i2i, dart.fnType(core.int, [core.int], |
{extra: core.int})); |
- checkType(i_i2i, dart.functionType(core.int, [core.int], |
+ checkType(i_i2i, dart.fnTypeFuzzy(core.int, [core.int], |
{extra: core.int})); |
- checkType(i_i2i, dart.functionType(core.int, |
+ checkType(i_i2i, dart.fnTypeFuzzy(core.int, |
[core.int, core.int]), false); |
- checkType(i_i2i, dart.functionType(core.int, [core.int], {})); |
+ checkType(i_i2i, dart.fnTypeFuzzy(core.int, [core.int], {})); |
checkType(i_i2i, |
- dart.functionType(core.int, [], {extra: core.int, |
+ dart.fnTypeFuzzy(core.int, [], {extra: core.int, |
also: core.int}), false); |
checkType(i_i2i, |
- dart.functionType(core.int, [core.int], [core.int]), false); |
+ dart.fnTypeFuzzy(core.int, [core.int], [core.int]), false); |
}); |
test('Method tearoffs', () => { |
@@ -720,52 +720,52 @@ define(['dart_sdk'], function(dart_sdk) { |
// Tear off of an inherited method |
let map = new (Map$(core.int, core.String))(); |
checkType(dart.bind(map, 'toString'), |
- dart.functionType(String, [])); |
+ dart.fnTypeFuzzy(String, [])); |
checkType(dart.bind(map, 'toString'), |
- dart.functionType(int, []), false, true); |
+ dart.fnTypeFuzzy(int, []), false, true); |
// Tear off of a method directly on the object |
let smap = new (c.SplayTreeMap$(core.int, core.String))(); |
checkType(dart.bind(smap, 'forEach'), |
- dart.functionType(dart.void, |
- [dart.functionType(dart.void, [core.int, core.String])])); |
+ dart.fnTypeFuzzy(dart.void, |
+ [dart.fnTypeFuzzy(dart.void, [core.int, core.String])])); |
checkType(dart.bind(smap, 'forEach'), |
- dart.functionType(dart.void, |
- [dart.functionType(dart.void, |
+ dart.fnTypeFuzzy(dart.void, |
+ [dart.fnTypeFuzzy(dart.void, |
[core.String, core.String])]), false, true); |
// Tear off of a mixed in method |
let mapB = new (c.MapBase$(core.int, core.int))(); |
checkType(dart.bind(mapB, 'forEach'), |
- dart.functionType(dart.void, [ |
- dart.functionType(dart.void, [core.int, core.int])])); |
+ dart.fnTypeFuzzy(dart.void, [ |
+ dart.fnTypeFuzzy(dart.void, [core.int, core.int])])); |
checkType(dart.bind(mapB, 'forEach'), |
- dart.functionType(dart.void, [ |
- dart.functionType(dart.void, [core.int, core.String])]), |
+ dart.fnTypeFuzzy(dart.void, [ |
+ dart.fnTypeFuzzy(dart.void, [core.int, core.String])]), |
false, true); |
// Tear off of a method with a symbol name |
let listB = new (c.ListBase$(core.int))(); |
checkType(dart.bind(listB, dartx.add), |
- dart.functionType(dart.void, [core.int])); |
+ dart.fnTypeFuzzy(dart.void, [core.int])); |
checkType(dart.bind(listB, dartx.add), |
- dart.functionType(dart.void, [core.String]), false, true); |
+ dart.fnTypeFuzzy(dart.void, [core.String]), false, true); |
// Tear off of a static method |
checkType(c.ListBase.listToString, |
- dart.functionType(core.String, [core.List])); |
+ dart.fnTypeFuzzy(core.String, [core.List])); |
checkType(c.ListBase.listToString, |
- dart.functionType(core.String, [core.String]), false, true); |
+ dart.fnTypeFuzzy(core.String, [core.String]), false, true); |
// Tear-off of extension methods on primitives |
checkType(dart.bind(3.0, dartx.floor), |
- dart.functionType(core.int, [])); |
+ dart.fnTypeFuzzy(core.int, [])); |
checkType(dart.bind(3.0, dartx.floor), |
- dart.functionType(core.String, []), false, true); |
+ dart.fnTypeFuzzy(core.String, []), false, true); |
checkType(dart.bind("", dartx.endsWith), |
- dart.functionType(core.bool, [core.String])); |
+ dart.fnTypeFuzzy(core.bool, [core.String])); |
checkType(dart.bind("", dartx.endsWith), |
- dart.functionType(core.bool, [core.int]), false, true); |
+ dart.fnTypeFuzzy(core.bool, [core.int]), false, true); |
// Tear off a mixin method |
class Base { |
@@ -773,7 +773,7 @@ define(['dart_sdk'], function(dart_sdk) { |
}; |
dart.setSignature(Base, { |
methods: () => ({ |
- m: dart.definiteFunctionType(core.int, [core.int]), |
+ m: dart.fnType(core.int, [core.int]), |
}) |
}); |
@@ -782,7 +782,7 @@ define(['dart_sdk'], function(dart_sdk) { |
}; |
dart.setSignature(M1, { |
methods: () => ({ |
- m: dart.definiteFunctionType(core.num, [core.int]), |
+ m: dart.fnType(core.num, [core.int]), |
}) |
}); |
@@ -791,7 +791,7 @@ define(['dart_sdk'], function(dart_sdk) { |
}; |
dart.setSignature(M2, { |
methods: () => ({ |
- m: dart.definiteFunctionType(core.Object, [core.int]), |
+ m: dart.fnType(core.Object, [core.int]), |
}) |
}); |
@@ -801,8 +801,8 @@ define(['dart_sdk'], function(dart_sdk) { |
dart.setSignature(O, {}); |
var obj = new O(); |
var m = dart.bind(obj, 'm'); |
- checkType(m, dart.functionType(core.Object, [core.int])); |
- checkType(m, dart.functionType(core.int, [core.int]), false, true); |
+ checkType(m, dart.fnTypeFuzzy(core.Object, [core.int])); |
+ checkType(m, dart.fnTypeFuzzy(core.int, [core.int]), false, true); |
// Test inherited signatures |
class P extends O { |
@@ -812,8 +812,8 @@ define(['dart_sdk'], function(dart_sdk) { |
dart.setSignature(P, {}); |
var obj = new P(); |
var m = dart.bind(obj, 'm'); |
- checkType(m, dart.functionType(core.Object, [core.int])); |
- checkType(m, dart.functionType(core.int, [core.int]), false, true); |
+ checkType(m, dart.fnTypeFuzzy(core.Object, [core.int])); |
+ checkType(m, dart.fnTypeFuzzy(core.int, [core.int]), false, true); |
}); |
test('Object members', () => { |
@@ -851,8 +851,8 @@ define(['dart_sdk'], function(dart_sdk) { |
suite('subtyping', function() { |
'use strict'; |
- let functionType = dart.functionType; |
- let definiteFunctionType = dart.definiteFunctionType; |
+ let fnTypeFuzzy = dart.fnTypeFuzzy; |
+ let fnType = dart.fnType; |
let typedef = dart.typedef; |
let isSubtype = dart.isSubtype; |
let int = core.int; |
@@ -880,15 +880,15 @@ define(['dart_sdk'], function(dart_sdk) { |
function always2(t1, t2) { |
always(t1, t2); |
- always(functionType(t1, [t2]), functionType(t2, [t1])); |
+ always(fnTypeFuzzy(t1, [t2]), fnTypeFuzzy(t2, [t1])); |
} |
function never2(t1, t2) { |
never(t1, t2); |
- maybe(functionType(t1, [t2]), functionType(t2, [t1])); |
+ maybe(fnTypeFuzzy(t1, [t2]), fnTypeFuzzy(t2, [t1])); |
} |
function maybe2(t1, t2) { |
maybe(t1, t2); |
- maybe(functionType(t1, [t2]), functionType(t2, [t1])); |
+ maybe(fnTypeFuzzy(t1, [t2]), fnTypeFuzzy(t2, [t1])); |
} |
function run_test(func1, func2, func2opt, func1extra, func2extra) { |
@@ -965,23 +965,23 @@ define(['dart_sdk'], function(dart_sdk) { |
test('basic function types', () => { |
function func1(S) { |
- return functionType(S, []); |
+ return fnTypeFuzzy(S, []); |
} |
function func2(S, T) { |
- return functionType(S, [T]); |
+ return fnTypeFuzzy(S, [T]); |
} |
function func2opt(S, T) { |
- return functionType(S, [], [T]); |
+ return fnTypeFuzzy(S, [], [T]); |
} |
function func1extra(S) { |
- return functionType(S, [], {extra: int}); |
+ return fnTypeFuzzy(S, [], {extra: int}); |
} |
function func2extra(S, T) { |
- return functionType(S, [T], {extra: int}); |
+ return fnTypeFuzzy(S, [T], {extra: int}); |
} |
run_test(func1, func2, func2opt, func1extra, func2extra); |
@@ -1005,8 +1005,8 @@ define(['dart_sdk'], function(dart_sdk) { |
for (let bottom of bottoms) { |
always(bottom, top); |
always( |
- definiteFunctionType(bottom, [top]), |
- definiteFunctionType(top, [bottom])); |
+ fnType(bottom, [top]), |
+ fnType(top, [bottom])); |
} |
} |
@@ -1016,8 +1016,8 @@ define(['dart_sdk'], function(dart_sdk) { |
always(t1, t2); |
always(t2, t1); |
- let t11 = definiteFunctionType(t1, [t1]); |
- let t22 = definiteFunctionType(t2, [t2]); |
+ let t11 = fnType(t1, [t1]); |
+ let t22 = fnType(t2, [t2]); |
always(t11, t22); |
always(t22, t11); |
} |
@@ -1027,23 +1027,23 @@ define(['dart_sdk'], function(dart_sdk) { |
test('basic typedefs', () => { |
function func1(S) { |
- return dart.typedef('Func1', () => functionType(S, [])) |
+ return dart.typedef('Func1', () => fnTypeFuzzy(S, [])) |
} |
function func2(S, T) { |
- return dart.typedef('Func2', () => functionType(S, [T])) |
+ return dart.typedef('Func2', () => fnTypeFuzzy(S, [T])) |
} |
function func2opt(S, T) { |
- return dart.typedef('Func2', () => functionType(S, [], [T])) |
+ return dart.typedef('Func2', () => fnTypeFuzzy(S, [], [T])) |
} |
function func1extra(S) { |
- return dart.typedef('Func1', () => functionType(S, [], {extra: int})) |
+ return dart.typedef('Func1', () => fnTypeFuzzy(S, [], {extra: int})) |
} |
function func2extra(S, T) { |
- return dart.typedef('Func2', () => functionType(S, [T], {extra: int})) |
+ return dart.typedef('Func2', () => fnTypeFuzzy(S, [T], {extra: int})) |
} |
run_test(func1, func2, func2opt, func1extra, func2extra); |
@@ -1051,94 +1051,94 @@ define(['dart_sdk'], function(dart_sdk) { |
test('basic generic typedefs', () => { |
let func1 = dart.generic( |
- (S) => dart.typedef('Func1', () => functionType(S, []))); |
+ (S) => dart.typedef('Func1', () => fnTypeFuzzy(S, []))); |
let func2 = dart.generic( |
- (S, T) => dart.typedef('Func2', () => functionType(S, [T]))); |
+ (S, T) => dart.typedef('Func2', () => fnTypeFuzzy(S, [T]))); |
let func2opt = dart.generic( |
- (S, T) => dart.typedef('Func2', () => functionType(S, [], [T]))); |
+ (S, T) => dart.typedef('Func2', () => fnTypeFuzzy(S, [], [T]))); |
let func1extra = dart.generic( |
- (S) => dart.typedef('Func1', () => functionType(S, [], {extra: int}))); |
+ (S) => dart.typedef('Func1', () => fnTypeFuzzy(S, [], {extra: int}))); |
let func2extra = dart.generic( |
(S, T) => dart.typedef('Func2', |
- () => functionType(S, [T], {extra: int}))); |
+ () => fnTypeFuzzy(S, [T], {extra: int}))); |
run_test(func1, func2, func2opt, func1extra, func2extra); |
}); |
test('fuzzy function types', () => { |
- always(functionType(int, [int]), functionType(dyn, [dyn])); |
- always(functionType(int, [], [int]), functionType(dyn, [], [dyn])); |
- always(functionType(int, [], [int]), functionType(dyn, [dyn])); |
- always(functionType(int, [], [int]), functionType(dyn, [])); |
- always(functionType(int, [int], {extra: int}), functionType(dyn, [dyn])); |
- |
- always(functionType(dyn, [dyn]), functionType(dyn, [dyn])); |
- always(functionType(dyn, [], [dyn]), functionType(dyn, [], [dyn])); |
- always(functionType(dyn, [], [dyn]), functionType(dyn, [dyn])); |
- always(functionType(dyn, [], [dyn]), functionType(dyn, [])); |
- always(functionType(dyn, [dyn], {extra: dyn}), functionType(dyn, [dyn])); |
+ always(fnTypeFuzzy(int, [int]), fnTypeFuzzy(dyn, [dyn])); |
+ always(fnTypeFuzzy(int, [], [int]), fnTypeFuzzy(dyn, [], [dyn])); |
+ always(fnTypeFuzzy(int, [], [int]), fnTypeFuzzy(dyn, [dyn])); |
+ always(fnTypeFuzzy(int, [], [int]), fnTypeFuzzy(dyn, [])); |
+ always(fnTypeFuzzy(int, [int], {extra: int}), fnTypeFuzzy(dyn, [dyn])); |
+ |
+ always(fnTypeFuzzy(dyn, [dyn]), fnTypeFuzzy(dyn, [dyn])); |
+ always(fnTypeFuzzy(dyn, [], [dyn]), fnTypeFuzzy(dyn, [], [dyn])); |
+ always(fnTypeFuzzy(dyn, [], [dyn]), fnTypeFuzzy(dyn, [dyn])); |
+ always(fnTypeFuzzy(dyn, [], [dyn]), fnTypeFuzzy(dyn, [])); |
+ always(fnTypeFuzzy(dyn, [dyn], {extra: dyn}), fnTypeFuzzy(dyn, [dyn])); |
}); |
test('void function types', () => { |
- always(functionType(int, [int]), functionType(dart.void, [dyn])); |
- always(functionType(int, [], [int]), functionType(dart.void, [], [dyn])); |
- always(functionType(int, [], [int]), functionType(dart.void, [dyn])); |
- always(functionType(int, [], [int]), functionType(dart.void, [])); |
- always(functionType(int, [int], {extra: int}), functionType(dart.void, [dyn])); |
- |
- always(functionType(dart.void, [int]), functionType(dart.void, [dyn])); |
- always(functionType(dart.void, [], [int]), functionType(dart.void, [], [dyn])); |
- always(functionType(dart.void, [], [int]), functionType(dart.void, [dyn])); |
- always(functionType(dart.void, [], [int]), functionType(dart.void, [])); |
- always(functionType(dart.void, [int], {extra: int}), functionType(dart.void, [dyn])); |
- |
- always(functionType(dyn, [dyn]), functionType(dart.void, [dyn])); |
- always(functionType(dyn, [], [dyn]), functionType(dart.void, [], [dyn])); |
- always(functionType(dyn, [], [dyn]), functionType(dart.void, [dyn])); |
- always(functionType(dyn, [], [dyn]), functionType(dart.void, [])); |
- always(functionType(dyn, [dyn], {extra: dyn}), functionType(dart.void, [dyn])); |
- |
- always(functionType(dart.void, [dyn]), functionType(dart.void, [dyn])); |
- always(functionType(dart.void, [], [dyn]), functionType(dart.void, [], [dyn])); |
- always(functionType(dart.void, [], [dyn]), functionType(dart.void, [dyn])); |
- always(functionType(dart.void, [], [dyn]), functionType(dart.void, [])); |
- always(functionType(dart.void, [dyn], {extra: dyn}), functionType(dart.void, [dyn])); |
- |
- always(functionType(dart.void, [int]), functionType(dyn, [dyn])); |
- always(functionType(dart.void, [], [int]), functionType(dyn, [], [dyn])); |
- always(functionType(dart.void, [], [int]), functionType(dyn, [dyn])); |
- always(functionType(dart.void, [], [int]), functionType(dyn, [])); |
- always(functionType(dart.void, [int], {extra: int}), functionType(dyn, [dyn])); |
- |
- never(functionType(dart.void, [int]), functionType(int, [dyn])); |
- never(functionType(dart.void, [], [int]), functionType(int, [], [dyn])); |
- never(functionType(dart.void, [], [int]), functionType(int, [dyn])); |
- never(functionType(dart.void, [], [int]), functionType(int, [])); |
- never(functionType(dart.void, [int], {extra: int}), functionType(int, [dyn])); |
- |
- never(functionType(dart.void, [int]), functionType(int, [int])); |
- never(functionType(dart.void, [], [int]), functionType(int, [], [int])); |
- never(functionType(dart.void, [], [int]), functionType(int, [int])); |
- never(functionType(dart.void, [], [int]), functionType(int, [])); |
- never(functionType(dart.void, [int], {extra: int}), functionType(int, [int])); |
+ always(fnTypeFuzzy(int, [int]), fnTypeFuzzy(dart.void, [dyn])); |
+ always(fnTypeFuzzy(int, [], [int]), fnTypeFuzzy(dart.void, [], [dyn])); |
+ always(fnTypeFuzzy(int, [], [int]), fnTypeFuzzy(dart.void, [dyn])); |
+ always(fnTypeFuzzy(int, [], [int]), fnTypeFuzzy(dart.void, [])); |
+ always(fnTypeFuzzy(int, [int], {extra: int}), fnTypeFuzzy(dart.void, [dyn])); |
+ |
+ always(fnTypeFuzzy(dart.void, [int]), fnTypeFuzzy(dart.void, [dyn])); |
+ always(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(dart.void, [], [dyn])); |
+ always(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(dart.void, [dyn])); |
+ always(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(dart.void, [])); |
+ always(fnTypeFuzzy(dart.void, [int], {extra: int}), fnTypeFuzzy(dart.void, [dyn])); |
+ |
+ always(fnTypeFuzzy(dyn, [dyn]), fnTypeFuzzy(dart.void, [dyn])); |
+ always(fnTypeFuzzy(dyn, [], [dyn]), fnTypeFuzzy(dart.void, [], [dyn])); |
+ always(fnTypeFuzzy(dyn, [], [dyn]), fnTypeFuzzy(dart.void, [dyn])); |
+ always(fnTypeFuzzy(dyn, [], [dyn]), fnTypeFuzzy(dart.void, [])); |
+ always(fnTypeFuzzy(dyn, [dyn], {extra: dyn}), fnTypeFuzzy(dart.void, [dyn])); |
+ |
+ always(fnTypeFuzzy(dart.void, [dyn]), fnTypeFuzzy(dart.void, [dyn])); |
+ always(fnTypeFuzzy(dart.void, [], [dyn]), fnTypeFuzzy(dart.void, [], [dyn])); |
+ always(fnTypeFuzzy(dart.void, [], [dyn]), fnTypeFuzzy(dart.void, [dyn])); |
+ always(fnTypeFuzzy(dart.void, [], [dyn]), fnTypeFuzzy(dart.void, [])); |
+ always(fnTypeFuzzy(dart.void, [dyn], {extra: dyn}), fnTypeFuzzy(dart.void, [dyn])); |
+ |
+ always(fnTypeFuzzy(dart.void, [int]), fnTypeFuzzy(dyn, [dyn])); |
+ always(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(dyn, [], [dyn])); |
+ always(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(dyn, [dyn])); |
+ always(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(dyn, [])); |
+ always(fnTypeFuzzy(dart.void, [int], {extra: int}), fnTypeFuzzy(dyn, [dyn])); |
+ |
+ never(fnTypeFuzzy(dart.void, [int]), fnTypeFuzzy(int, [dyn])); |
+ never(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(int, [], [dyn])); |
+ never(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(int, [dyn])); |
+ never(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(int, [])); |
+ never(fnTypeFuzzy(dart.void, [int], {extra: int}), fnTypeFuzzy(int, [dyn])); |
+ |
+ never(fnTypeFuzzy(dart.void, [int]), fnTypeFuzzy(int, [int])); |
+ never(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(int, [], [int])); |
+ never(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(int, [int])); |
+ never(fnTypeFuzzy(dart.void, [], [int]), fnTypeFuzzy(int, [])); |
+ never(fnTypeFuzzy(dart.void, [int], {extra: int}), fnTypeFuzzy(int, [int])); |
}); |
test('higher-order typedef', () => { |
let Func$ = dart.generic((S, T) => |
dart.typedef('Func', () => |
- functionType(T, [S]))); |
+ fnTypeFuzzy(T, [S]))); |
let Func2$ = dart.generic((R, S, T) => |
dart.typedef('Func2', () => |
- functionType(T, [Func$(R, S)]))); |
+ fnTypeFuzzy(T, [Func$(R, S)]))); |
- maybe(functionType(int, [functionType(int, [num])]), |
- functionType(num, [functionType(int, [int])])); |
- maybe(functionType(int, [Func$(num, int)]), |
- functionType(num, [Func$(int, int)])); |
+ maybe(fnTypeFuzzy(int, [fnTypeFuzzy(int, [num])]), |
+ fnTypeFuzzy(num, [fnTypeFuzzy(int, [int])])); |
+ maybe(fnTypeFuzzy(int, [Func$(num, int)]), |
+ fnTypeFuzzy(num, [Func$(int, int)])); |
maybe(Func2$(num, int, int), Func2$(int, int, num)); |
}); |
@@ -1148,29 +1148,29 @@ define(['dart_sdk'], function(dart_sdk) { |
always(int, dyn); |
maybe(dyn, int); |
- never(functionType(int, [int]), int); |
+ never(fnTypeFuzzy(int, [int]), int); |
- never(int, functionType(int, [int])); |
+ never(int, fnTypeFuzzy(int, [int])); |
always(AA$(int), AA$(dyn)); |
maybe(AA$(dyn), AA$(int)); |
never(AA$(core.Object), AA$(int)); |
- always(AA$(functionType(int, [int])), AA$(dyn)); |
- maybe(AA$(dyn), AA$(functionType(int, [int]))); |
- never(AA$(core.Object), AA$(functionType(int, [int]))); |
+ always(AA$(fnTypeFuzzy(int, [int])), AA$(dyn)); |
+ maybe(AA$(dyn), AA$(fnTypeFuzzy(int, [int]))); |
+ never(AA$(core.Object), AA$(fnTypeFuzzy(int, [int]))); |
- always(AA$(functionType(int, [int])), AA$(functionType(dyn, [dyn]))); |
- maybe(AA$(functionType(dyn, [dyn])), AA$(functionType(int, [int]))); |
- maybe(AA$(functionType(core.Object, [core.Object])), |
- AA$(functionType(int, [int]))); |
+ always(AA$(fnTypeFuzzy(int, [int])), AA$(fnTypeFuzzy(dyn, [dyn]))); |
+ maybe(AA$(fnTypeFuzzy(dyn, [dyn])), AA$(fnTypeFuzzy(int, [int]))); |
+ maybe(AA$(fnTypeFuzzy(core.Object, [core.Object])), |
+ AA$(fnTypeFuzzy(int, [int]))); |
}); |
}); |
suite('canonicalization', function() { |
'use strict'; |
- let functionType = dart.functionType; |
- let definiteFunctionType = dart.definiteFunctionType; |
+ let fnTypeFuzzy = dart.fnTypeFuzzy; |
+ let fnType = dart.fnType; |
let typedef = dart.typedef; |
let generic = dart.generic; |
@@ -1187,9 +1187,9 @@ define(['dart_sdk'], function(dart_sdk) { |
let AA$ = generic((T, U) => class AA extends core.Object {}); |
let AA = AA$(); |
- let Func2 = typedef('Func2', () => functionType(dynamic, [dynamic, dynamic])); |
+ let Func2 = typedef('Func2', () => fnTypeFuzzy(dynamic, [dynamic, dynamic])); |
- let FuncG$ = generic((T, U) => typedef('FuncG', () => functionType(T, [T, U]))) |
+ let FuncG$ = generic((T, U) => typedef('FuncG', () => fnTypeFuzzy(T, [T, U]))) |
let FuncG = FuncG$(); |
test('base types', () => { |
@@ -1220,53 +1220,53 @@ define(['dart_sdk'], function(dart_sdk) { |
}); |
test('function types', () => { |
- assert.equal(functionType(dynamic, [dynamic, dynamic]), |
- functionType(dynamic, [dynamic, dynamic])) |
+ assert.equal(fnTypeFuzzy(dynamic, [dynamic, dynamic]), |
+ fnTypeFuzzy(dynamic, [dynamic, dynamic])) |
- assert.notEqual(definiteFunctionType(dynamic, [dynamic, dynamic]), |
- functionType(dynamic, [dynamic, dynamic])) |
+ assert.notEqual(fnType(dynamic, [dynamic, dynamic]), |
+ fnTypeFuzzy(dynamic, [dynamic, dynamic])) |
- assert.equal(functionType(dynamic, [dynamic, dynamic]), |
- functionType(dynamic, [bottom, bottom])) |
+ assert.equal(fnTypeFuzzy(dynamic, [dynamic, dynamic]), |
+ fnTypeFuzzy(dynamic, [bottom, bottom])) |
- assert.equal(functionType(dynamic, [], [dynamic, dynamic]), |
- functionType(dynamic, [], [dynamic, dynamic])) |
+ assert.equal(fnTypeFuzzy(dynamic, [], [dynamic, dynamic]), |
+ fnTypeFuzzy(dynamic, [], [dynamic, dynamic])) |
- assert.notEqual(definiteFunctionType(dynamic, [], [dynamic, dynamic]), |
- functionType(dynamic, [], [dynamic, dynamic])) |
+ assert.notEqual(fnType(dynamic, [], [dynamic, dynamic]), |
+ fnTypeFuzzy(dynamic, [], [dynamic, dynamic])) |
- assert.equal(functionType(dynamic, [], [dynamic, dynamic]), |
- functionType(dynamic, [], [bottom, bottom])) |
+ assert.equal(fnTypeFuzzy(dynamic, [], [dynamic, dynamic]), |
+ fnTypeFuzzy(dynamic, [], [bottom, bottom])) |
- assert.equal(functionType(dynamic, [], {extra: dynamic}), |
- functionType(dynamic, [], {extra: dynamic})) |
+ assert.equal(fnTypeFuzzy(dynamic, [], {extra: dynamic}), |
+ fnTypeFuzzy(dynamic, [], {extra: dynamic})) |
- assert.notEqual(definiteFunctionType(dynamic, [], {extra: dynamic}), |
- functionType(dynamic, [], {extra: dynamic})) |
+ assert.notEqual(fnType(dynamic, [], {extra: dynamic}), |
+ fnTypeFuzzy(dynamic, [], {extra: dynamic})) |
- assert.equal(functionType(dynamic, [], {extra: dynamic}), |
- functionType(dynamic, [], {extra: bottom})) |
+ assert.equal(fnTypeFuzzy(dynamic, [], {extra: dynamic}), |
+ fnTypeFuzzy(dynamic, [], {extra: bottom})) |
- assert.equal(functionType(int, [int, int]), |
- functionType(int, [int, int])) |
+ assert.equal(fnTypeFuzzy(int, [int, int]), |
+ fnTypeFuzzy(int, [int, int])) |
- assert.equal(functionType(int, [], [int, int]), |
- functionType(int, [], [int, int])) |
+ assert.equal(fnTypeFuzzy(int, [], [int, int]), |
+ fnTypeFuzzy(int, [], [int, int])) |
- assert.equal(functionType(int, [int, int], {extra: int}), |
- functionType(int, [int, int], {extra: int})) |
+ assert.equal(fnTypeFuzzy(int, [int, int], {extra: int}), |
+ fnTypeFuzzy(int, [int, int], {extra: int})) |
- assert.equal(functionType(int, [int, int, int, int, int]), |
- functionType(int, [int, int, int, int, int])) |
+ assert.equal(fnTypeFuzzy(int, [int, int, int, int, int]), |
+ fnTypeFuzzy(int, [int, int, int, int, int])) |
- assert.notEqual(functionType(int, [int, int, int, int, int]), |
- functionType(int, [int, int, int], [int, int])) |
+ assert.notEqual(fnTypeFuzzy(int, [int, int, int, int, int]), |
+ fnTypeFuzzy(int, [int, int, int], [int, int])) |
- assert.notEqual(functionType(String, [int, int, int, int, int]), |
- functionType(int, [int, int, int, int, int])) |
+ assert.notEqual(fnTypeFuzzy(String, [int, int, int, int, int]), |
+ fnTypeFuzzy(int, [int, int, int, int, int])) |
- assert.notEqual(functionType(String, []), |
- functionType(int, [])) |
+ assert.notEqual(fnTypeFuzzy(String, []), |
+ fnTypeFuzzy(int, [])) |
}); |
}); |