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

Unified Diff: tests/compiler/dart2js/type_representation_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_equals_test.dart ('k') | tests/compiler/dart2js/type_substitution_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/type_representation_test.dart
diff --git a/tests/compiler/dart2js/type_representation_test.dart b/tests/compiler/dart2js/type_representation_test.dart
index 8c651f697d756b5dbb32802c55921be6c39112c7..5e6b7c5e2885ebd95e1c949c08a5d55b3214f2a3 100644
--- a/tests/compiler/dart2js/type_representation_test.dart
+++ b/tests/compiler/dart2js/type_representation_test.dart
@@ -5,6 +5,7 @@
library subtype_test;
import 'package:expect/expect.dart';
+import "package:async_helper/async_helper.dart";
import 'type_test_helper.dart';
import '../../../sdk/lib/_internal/compiler/implementation/dart_types.dart';
import '../../../sdk/lib/_internal/compiler/implementation/js/js.dart';
@@ -18,7 +19,7 @@ void main() {
}
void testTypeRepresentations() {
- var env = new TypeEnvironment(r"""
+ asyncTest(() => TypeEnvironment.create(r"""
typedef void Typedef();
void m1() {}
@@ -31,133 +32,133 @@ void testTypeRepresentations() {
m8(int a, {String b}) {}
m9(int a, String b, {List<int> c, d}) {}
m10(void f(int a, [b])) {}
- """);
-
- TypeRepresentationGenerator typeRepresentation =
- new TypeRepresentationGenerator(env.compiler);
-
- Expression onVariable(TypeVariableType variable) {
- return new VariableUse(variable.name.slowToString());
- }
-
- String stringify(Expression expression) {
- return prettyPrint(expression, env.compiler).buffer.toString();
- }
-
- void expect(String expectedRepresentation, DartType type) {
- Expression expression =
- typeRepresentation.getTypeRepresentation(type, onVariable);
- Expect.stringEquals(expectedRepresentation, stringify(expression));
- }
-
- String getJsName(ClassElement cls) {
- Expression name = typeRepresentation.getJavaScriptClassName(cls);
- return stringify(name);
- }
-
- JavaScriptBackend backend = env.compiler.backend;
- String func = backend.namer.functionTypeTag();
- String retvoid = backend.namer.functionTypeVoidReturnTag();
- String ret = backend.namer.functionTypeReturnTypeTag();
- String args = backend.namer.functionTypeRequiredParametersTag();
- String opt = backend.namer.functionTypeOptionalParametersTag();
- String named = backend.namer.functionTypeNamedParametersTag();
-
- ClassElement List_ = env.getElement('List');
- TypeVariableType List_E = List_.typeVariables.head;
- ClassElement Map_ = env.getElement('Map');
- TypeVariableType Map_K = Map_.typeVariables.head;
- TypeVariableType Map_V = Map_.typeVariables.tail.head;
-
- DartType Object_ = env['Object'];
- DartType int_ = env['int'];
- DartType String_ = env['String'];
- DartType dynamic_ = env['dynamic'];
- DartType Typedef_ = env['Typedef'];
-
- String List_rep = getJsName(List_);
- String List_E_rep = stringify(onVariable(List_E));
- String Map_rep = getJsName(Map_);
- String Map_K_rep = stringify(onVariable(Map_K));
- String Map_V_rep = stringify(onVariable(Map_V));
-
- String Object_rep = getJsName(Object_.element);
- String int_rep = getJsName(int_.element);
- String String_rep = getJsName(String_.element);
-
- expect('$int_rep', int_);
- expect('$String_rep', String_);
- expect('null', dynamic_);
-
- // List<E>
- expect('[$List_rep, $List_E_rep]', List_.computeType(env.compiler));
- // List
- expect('$List_rep', List_.rawType);
- // List<dynamic>
- expect('[$List_rep, null]', instantiate(List_, [dynamic_]));
- // List<int>
- expect('[$List_rep, $int_rep]', instantiate(List_, [int_]));
- // List<Typedef>
- expect('[$List_rep, {$func: "void_", $retvoid: true}]',
- instantiate(List_, [Typedef_]));
-
- // Map<K,V>
- expect('[$Map_rep, $Map_K_rep, $Map_V_rep]', Map_.computeType(env.compiler));
- // Map
- expect('$Map_rep', Map_.rawType);
- // Map<dynamic,dynamic>
- expect('[$Map_rep, null, null]', instantiate(Map_, [dynamic_, dynamic_]));
- // Map<int,String>
- expect('[$Map_rep, $int_rep, $String_rep]',
- instantiate(Map_, [int_, String_]));
-
- // void m1() {}
- expect('{$func: "void_", $retvoid: true}',
- env.getElement('m1').computeType(env.compiler));
-
- // int m2() => 0;
- expect('{$func: "int_", $ret: $int_rep}',
- env.getElement('m2').computeType(env.compiler));
-
- // List<int> m3() => null;
- expect('{$func: "List_", $ret: [$List_rep, $int_rep]}',
- env.getElement('m3').computeType(env.compiler));
-
- // m4() {}
- expect('{$func: "args0"}',
- env.getElement('m4').computeType(env.compiler));
-
- // m5(int a, String b) {}
- expect('{$func: "dynamic__int_String", $args: [$int_rep, $String_rep]}',
- env.getElement('m5').computeType(env.compiler));
-
- // m6(int a, [String b]) {}
- expect('{$func: "dynamic__int__String", $args: [$int_rep],'
- ' $opt: [$String_rep]}',
- env.getElement('m6').computeType(env.compiler));
-
- // m7(int a, String b, [List<int> c, d]) {}
- expect('{$func: "dynamic__int_String__List_dynamic",'
- ' $args: [$int_rep, $String_rep],'
- ' $opt: [[$List_rep, $int_rep], null]}',
- env.getElement('m7').computeType(env.compiler));
-
- // m8(int a, {String b}) {}
- expect('{$func: "dynamic__int__String0",'
- ' $args: [$int_rep], $named: {b: $String_rep}}',
- env.getElement('m8').computeType(env.compiler));
-
- // m9(int a, String b, {List<int> c, d}) {}
- expect('{$func: "dynamic__int_String__List_dynamic0",'
- ' $args: [$int_rep, $String_rep],'
- ' $named: {c: [$List_rep, $int_rep], d: null}}',
- env.getElement('m9').computeType(env.compiler));
-
- // m10(void f(int a, [b])) {}
- expect('{$func: "dynamic__void__int__dynamic", $args:'
- ' [{$func: "void__int__dynamic",'
- ' $retvoid: true, $args: [$int_rep], $opt: [null]}]}',
- env.getElement('m10').computeType(env.compiler));
+ """).then((env) {
+ TypeRepresentationGenerator typeRepresentation =
+ new TypeRepresentationGenerator(env.compiler);
+
+ Expression onVariable(TypeVariableType variable) {
+ return new VariableUse(variable.name.slowToString());
+ }
+
+ String stringify(Expression expression) {
+ return prettyPrint(expression, env.compiler).buffer.toString();
+ }
+
+ void expect(String expectedRepresentation, DartType type) {
+ Expression expression =
+ typeRepresentation.getTypeRepresentation(type, onVariable);
+ Expect.stringEquals(expectedRepresentation, stringify(expression));
+ }
+
+ String getJsName(ClassElement cls) {
+ Expression name = typeRepresentation.getJavaScriptClassName(cls);
+ return stringify(name);
+ }
+
+ JavaScriptBackend backend = env.compiler.backend;
+ String func = backend.namer.functionTypeTag();
+ String retvoid = backend.namer.functionTypeVoidReturnTag();
+ String ret = backend.namer.functionTypeReturnTypeTag();
+ String args = backend.namer.functionTypeRequiredParametersTag();
+ String opt = backend.namer.functionTypeOptionalParametersTag();
+ String named = backend.namer.functionTypeNamedParametersTag();
+
+ ClassElement List_ = env.getElement('List');
+ TypeVariableType List_E = List_.typeVariables.head;
+ ClassElement Map_ = env.getElement('Map');
+ TypeVariableType Map_K = Map_.typeVariables.head;
+ TypeVariableType Map_V = Map_.typeVariables.tail.head;
+
+ DartType Object_ = env['Object'];
+ DartType int_ = env['int'];
+ DartType String_ = env['String'];
+ DartType dynamic_ = env['dynamic'];
+ DartType Typedef_ = env['Typedef'];
+
+ String List_rep = getJsName(List_);
+ String List_E_rep = stringify(onVariable(List_E));
+ String Map_rep = getJsName(Map_);
+ String Map_K_rep = stringify(onVariable(Map_K));
+ String Map_V_rep = stringify(onVariable(Map_V));
+
+ String Object_rep = getJsName(Object_.element);
+ String int_rep = getJsName(int_.element);
+ String String_rep = getJsName(String_.element);
+
+ expect('$int_rep', int_);
+ expect('$String_rep', String_);
+ expect('null', dynamic_);
+
+ // List<E>
+ expect('[$List_rep, $List_E_rep]', List_.computeType(env.compiler));
+ // List
+ expect('$List_rep', List_.rawType);
+ // List<dynamic>
+ expect('[$List_rep, null]', instantiate(List_, [dynamic_]));
+ // List<int>
+ expect('[$List_rep, $int_rep]', instantiate(List_, [int_]));
+ // List<Typedef>
+ expect('[$List_rep, {$func: "void_", $retvoid: true}]',
+ instantiate(List_, [Typedef_]));
+
+ // Map<K,V>
+ expect('[$Map_rep, $Map_K_rep, $Map_V_rep]', Map_.computeType(env.compiler));
+ // Map
+ expect('$Map_rep', Map_.rawType);
+ // Map<dynamic,dynamic>
+ expect('[$Map_rep, null, null]', instantiate(Map_, [dynamic_, dynamic_]));
+ // Map<int,String>
+ expect('[$Map_rep, $int_rep, $String_rep]',
+ instantiate(Map_, [int_, String_]));
+
+ // void m1() {}
+ expect('{$func: "void_", $retvoid: true}',
+ env.getElement('m1').computeType(env.compiler));
+
+ // int m2() => 0;
+ expect('{$func: "int_", $ret: $int_rep}',
+ env.getElement('m2').computeType(env.compiler));
+
+ // List<int> m3() => null;
+ expect('{$func: "List_", $ret: [$List_rep, $int_rep]}',
+ env.getElement('m3').computeType(env.compiler));
+
+ // m4() {}
+ expect('{$func: "args0"}',
+ env.getElement('m4').computeType(env.compiler));
+
+ // m5(int a, String b) {}
+ expect('{$func: "dynamic__int_String", $args: [$int_rep, $String_rep]}',
+ env.getElement('m5').computeType(env.compiler));
+
+ // m6(int a, [String b]) {}
+ expect('{$func: "dynamic__int__String", $args: [$int_rep],'
+ ' $opt: [$String_rep]}',
+ env.getElement('m6').computeType(env.compiler));
+
+ // m7(int a, String b, [List<int> c, d]) {}
+ expect('{$func: "dynamic__int_String__List_dynamic",'
+ ' $args: [$int_rep, $String_rep],'
+ ' $opt: [[$List_rep, $int_rep], null]}',
+ env.getElement('m7').computeType(env.compiler));
+
+ // m8(int a, {String b}) {}
+ expect('{$func: "dynamic__int__String0",'
+ ' $args: [$int_rep], $named: {b: $String_rep}}',
+ env.getElement('m8').computeType(env.compiler));
+
+ // m9(int a, String b, {List<int> c, d}) {}
+ expect('{$func: "dynamic__int_String__List_dynamic0",'
+ ' $args: [$int_rep, $String_rep],'
+ ' $named: {c: [$List_rep, $int_rep], d: null}}',
+ env.getElement('m9').computeType(env.compiler));
+
+ // m10(void f(int a, [b])) {}
+ expect('{$func: "dynamic__void__int__dynamic", $args:'
+ ' [{$func: "void__int__dynamic",'
+ ' $retvoid: true, $args: [$int_rep], $opt: [null]}]}',
+ env.getElement('m10').computeType(env.compiler));
+ }));
}
« no previous file with comments | « tests/compiler/dart2js/type_equals_test.dart ('k') | tests/compiler/dart2js/type_substitution_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698