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

Unified Diff: tests/compiler/dart2js/type_substitution_test.dart

Issue 17759007: First pass at asynchronous input loading in dart2js. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/compiler/dart2js/type_representation_test.dart ('k') | tests/compiler/dart2js/type_test_helper.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/type_substitution_test.dart
diff --git a/tests/compiler/dart2js/type_substitution_test.dart b/tests/compiler/dart2js/type_substitution_test.dart
index 7f2d9df6a12624c7b859f5b915019c0836e5e365..483e506ebad65fc4b9d572478b210d8a65759ede 100644
--- a/tests/compiler/dart2js/type_substitution_test.dart
+++ b/tests/compiler/dart2js/type_substitution_test.dart
@@ -5,6 +5,7 @@
library type_substitution_test;
import "package:expect/expect.dart";
+import "package:async_helper/async_helper.dart";
import '../../../sdk/lib/_internal/compiler/implementation/dart_types.dart';
import "compiler_helper.dart";
import "parser_helper.dart";
@@ -48,43 +49,46 @@ void main() {
}
void testAsInstanceOf() {
- var env = new TypeEnvironment('''
+ asyncTest(() => TypeEnvironment.create('''
class A<T> {}
class B<T> {}
class C<T> extends A<T> {}
class D<T> extends A<int> {}
class E<T> extends A<A<T>> {}
- class F<T, U> extends B<F<T, String>> implements A<F<B<U>, int>> {}''');
- var compiler = env.compiler;
-
- ClassElement A = env.getElement("A");
- ClassElement B = env.getElement("B");
- ClassElement C = env.getElement("C");
- ClassElement D = env.getElement("D");
- ClassElement E = env.getElement("E");
- ClassElement F = env.getElement("F");
-
- DartType numType = env['num'];
- DartType intType = env['int'];
- DartType stringType = env['String'];
-
- InterfaceType C_int = instantiate(C, [intType]);
- Expect.equals(instantiate(C, [intType]), C_int);
- Expect.equals(instantiate(A, [intType]), C_int.asInstanceOf(A));
-
- InterfaceType D_int = instantiate(D, [stringType]);
- Expect.equals(instantiate(A, [intType]), D_int.asInstanceOf(A));
-
- InterfaceType E_int = instantiate(E, [intType]);
- Expect.equals(instantiate(A, [instantiate(A, [intType])]),
- E_int.asInstanceOf(A));
-
- InterfaceType F_int_string = instantiate(F, [intType, stringType]);
- Expect.equals(instantiate(B, [instantiate(F, [intType, stringType])]),
- F_int_string.asInstanceOf(B));
- Expect.equals(instantiate(A, [instantiate(F, [instantiate(B, [stringType]),
- intType])]),
- F_int_string.asInstanceOf(A));
+ class F<T, U> extends B<F<T, String>> implements A<F<B<U>, int>> {}
+ ''').then((env) {
+ var compiler = env.compiler;
+
+ ClassElement A = env.getElement("A");
+ ClassElement B = env.getElement("B");
+ ClassElement C = env.getElement("C");
+ ClassElement D = env.getElement("D");
+ ClassElement E = env.getElement("E");
+ ClassElement F = env.getElement("F");
+
+ DartType numType = env['num'];
+ DartType intType = env['int'];
+ DartType stringType = env['String'];
+
+ InterfaceType C_int = instantiate(C, [intType]);
+ Expect.equals(instantiate(C, [intType]), C_int);
+ Expect.equals(instantiate(A, [intType]), C_int.asInstanceOf(A));
+
+ InterfaceType D_int = instantiate(D, [stringType]);
+ Expect.equals(instantiate(A, [intType]), D_int.asInstanceOf(A));
+
+ InterfaceType E_int = instantiate(E, [intType]);
+ Expect.equals(instantiate(A, [instantiate(A, [intType])]),
+ E_int.asInstanceOf(A));
+
+ InterfaceType F_int_string = instantiate(F, [intType, stringType]);
+ Expect.equals(instantiate(B, [instantiate(F, [intType, stringType])]),
+ F_int_string.asInstanceOf(B));
+ Expect.equals(instantiate(A, [instantiate(F, [instantiate(B, [stringType]),
+ intType])]),
+ F_int_string.asInstanceOf(A));
+
+ }));
}
/**
@@ -101,7 +105,7 @@ bool testSubstitution(compiler, arguments, parameters,
}
void testTypeSubstitution() {
- var env = new TypeEnvironment(r"""
+ asyncTest(() => TypeEnvironment.create(r"""
typedef void Typedef1<X,Y>(X x1, Y y2);
typedef void Typedef2<Z>(Z z1);
@@ -153,78 +157,79 @@ void testTypeSubstitution() {
void Typedef1e(Typedef2<S> a) {}
void Typedef2e(Typedef2<String> b) {}
}
- """);
- var compiler = env.compiler;
-
- InterfaceType Class_T_S = env["Class"];
- Expect.isNotNull(Class_T_S);
- Expect.identical(Class_T_S.kind, TypeKind.INTERFACE);
- Expect.equals(2, length(Class_T_S.typeArguments));
-
- DartType T = Class_T_S.typeArguments.head;
- Expect.isNotNull(T);
- Expect.identical(T.kind, TypeKind.TYPE_VARIABLE);
-
- DartType S = Class_T_S.typeArguments.tail.head;
- Expect.isNotNull(S);
- Expect.identical(S.kind, TypeKind.TYPE_VARIABLE);
-
- DartType intType = env['int'];//getType(compiler, "int1");
- Expect.isNotNull(intType);
- Expect.identical(intType.kind, TypeKind.INTERFACE);
-
- DartType StringType = env['String'];//getType(compiler, "String1");
- Expect.isNotNull(StringType);
- Expect.identical(StringType.kind, TypeKind.INTERFACE);
-
- var parameters = new Link<DartType>.fromList(<DartType>[T, S]);
- var arguments = new Link<DartType>.fromList(<DartType>[intType, StringType]);
-
- // TODO(johnniwinther): Create types directly from strings to improve test
- // readability.
-
- testSubstitution(compiler, arguments, parameters, "void1", "void2");
- testSubstitution(compiler, arguments, parameters, "dynamic1", "dynamic2");
- testSubstitution(compiler, arguments, parameters, "int1", "int2");
- testSubstitution(compiler, arguments, parameters, "String1", "String2");
- testSubstitution(compiler, arguments, parameters, "ListInt1", "ListInt2");
- testSubstitution(compiler, arguments, parameters, "ListT1", "ListT2");
- testSubstitution(compiler, arguments, parameters, "ListS1", "ListS2");
- testSubstitution(compiler, arguments, parameters, "ListListT1", "ListListT2");
- testSubstitution(compiler, arguments, parameters, "ListRaw1", "ListRaw2");
- testSubstitution(compiler, arguments, parameters,
- "ListDynamic1", "ListDynamic2");
- testSubstitution(compiler, arguments, parameters,
- "MapIntString1", "MapIntString2");
- testSubstitution(compiler, arguments, parameters,
- "MapTString1", "MapTString2");
- testSubstitution(compiler, arguments, parameters,
- "MapDynamicString1", "MapDynamicString2");
- testSubstitution(compiler, arguments, parameters, "TypeVarT1", "TypeVarT2");
- testSubstitution(compiler, arguments, parameters, "TypeVarS1", "TypeVarS2");
- testSubstitution(compiler, arguments, parameters, "Function1a", "Function2a");
- testSubstitution(compiler, arguments, parameters, "Function1b", "Function2b");
- testSubstitution(compiler, arguments, parameters, "Function1c", "Function2c");
- testSubstitution(compiler, arguments, parameters, "Typedef1a", "Typedef2a");
- testSubstitution(compiler, arguments, parameters, "Typedef1b", "Typedef2b");
- testSubstitution(compiler, arguments, parameters, "Typedef1c", "Typedef2c");
- testSubstitution(compiler, arguments, parameters, "Typedef1d", "Typedef2d");
- testSubstitution(compiler, arguments, parameters, "Typedef1e", "Typedef2e");
-
- // Substitution in unalias.
- DartType Typedef2_int_String = getType(compiler, "Typedef2a");
- Expect.isNotNull(Typedef2_int_String);
- DartType Function_int_String = getType(compiler, "Function2b");
- Expect.isNotNull(Function_int_String);
- DartType unalias1 = Typedef2_int_String.unalias(compiler);
- Expect.equals(Function_int_String, unalias1,
- '$Typedef2_int_String.unalias=$unalias1 != $Function_int_String');
-
- DartType Typedef1 = getType(compiler, "Typedef1c");
- Expect.isNotNull(Typedef1);
- DartType Function_dynamic_dynamic = getType(compiler, "Function1c");
- Expect.isNotNull(Function_dynamic_dynamic);
- DartType unalias2 = Typedef1.unalias(compiler);
- Expect.equals(Function_dynamic_dynamic, unalias2,
- '$Typedef1.unalias=$unalias2 != $Function_dynamic_dynamic');
+ """).then((env) {
+ var compiler = env.compiler;
+
+ InterfaceType Class_T_S = env["Class"];
+ Expect.isNotNull(Class_T_S);
+ Expect.identical(Class_T_S.kind, TypeKind.INTERFACE);
+ Expect.equals(2, length(Class_T_S.typeArguments));
+
+ DartType T = Class_T_S.typeArguments.head;
+ Expect.isNotNull(T);
+ Expect.identical(T.kind, TypeKind.TYPE_VARIABLE);
+
+ DartType S = Class_T_S.typeArguments.tail.head;
+ Expect.isNotNull(S);
+ Expect.identical(S.kind, TypeKind.TYPE_VARIABLE);
+
+ DartType intType = env['int'];//getType(compiler, "int1");
+ Expect.isNotNull(intType);
+ Expect.identical(intType.kind, TypeKind.INTERFACE);
+
+ DartType StringType = env['String'];//getType(compiler, "String1");
+ Expect.isNotNull(StringType);
+ Expect.identical(StringType.kind, TypeKind.INTERFACE);
+
+ var parameters = new Link<DartType>.fromList(<DartType>[T, S]);
+ var arguments = new Link<DartType>.fromList(<DartType>[intType, StringType]);
+
+ // TODO(johnniwinther): Create types directly from strings to improve test
+ // readability.
+
+ testSubstitution(compiler, arguments, parameters, "void1", "void2");
+ testSubstitution(compiler, arguments, parameters, "dynamic1", "dynamic2");
+ testSubstitution(compiler, arguments, parameters, "int1", "int2");
+ testSubstitution(compiler, arguments, parameters, "String1", "String2");
+ testSubstitution(compiler, arguments, parameters, "ListInt1", "ListInt2");
+ testSubstitution(compiler, arguments, parameters, "ListT1", "ListT2");
+ testSubstitution(compiler, arguments, parameters, "ListS1", "ListS2");
+ testSubstitution(compiler, arguments, parameters, "ListListT1", "ListListT2");
+ testSubstitution(compiler, arguments, parameters, "ListRaw1", "ListRaw2");
+ testSubstitution(compiler, arguments, parameters,
+ "ListDynamic1", "ListDynamic2");
+ testSubstitution(compiler, arguments, parameters,
+ "MapIntString1", "MapIntString2");
+ testSubstitution(compiler, arguments, parameters,
+ "MapTString1", "MapTString2");
+ testSubstitution(compiler, arguments, parameters,
+ "MapDynamicString1", "MapDynamicString2");
+ testSubstitution(compiler, arguments, parameters, "TypeVarT1", "TypeVarT2");
+ testSubstitution(compiler, arguments, parameters, "TypeVarS1", "TypeVarS2");
+ testSubstitution(compiler, arguments, parameters, "Function1a", "Function2a");
+ testSubstitution(compiler, arguments, parameters, "Function1b", "Function2b");
+ testSubstitution(compiler, arguments, parameters, "Function1c", "Function2c");
+ testSubstitution(compiler, arguments, parameters, "Typedef1a", "Typedef2a");
+ testSubstitution(compiler, arguments, parameters, "Typedef1b", "Typedef2b");
+ testSubstitution(compiler, arguments, parameters, "Typedef1c", "Typedef2c");
+ testSubstitution(compiler, arguments, parameters, "Typedef1d", "Typedef2d");
+ testSubstitution(compiler, arguments, parameters, "Typedef1e", "Typedef2e");
+
+ // Substitution in unalias.
+ DartType Typedef2_int_String = getType(compiler, "Typedef2a");
+ Expect.isNotNull(Typedef2_int_String);
+ DartType Function_int_String = getType(compiler, "Function2b");
+ Expect.isNotNull(Function_int_String);
+ DartType unalias1 = Typedef2_int_String.unalias(compiler);
+ Expect.equals(Function_int_String, unalias1,
+ '$Typedef2_int_String.unalias=$unalias1 != $Function_int_String');
+
+ DartType Typedef1 = getType(compiler, "Typedef1c");
+ Expect.isNotNull(Typedef1);
+ DartType Function_dynamic_dynamic = getType(compiler, "Function1c");
+ Expect.isNotNull(Function_dynamic_dynamic);
+ DartType unalias2 = Typedef1.unalias(compiler);
+ Expect.equals(Function_dynamic_dynamic, unalias2,
+ '$Typedef1.unalias=$unalias2 != $Function_dynamic_dynamic');
+ }));
}
« no previous file with comments | « tests/compiler/dart2js/type_representation_test.dart ('k') | tests/compiler/dart2js/type_test_helper.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698