Index: tests/compiler/dart2js/type_variable_bound_test.dart |
diff --git a/tests/compiler/dart2js/type_variable_bound_test.dart b/tests/compiler/dart2js/type_variable_bound_test.dart |
index 01761c499488d14dc2d9a8ef49c6066d678bb1b1..5c9b720dce54309d584f4319e7cd4bc89477b44d 100644 |
--- a/tests/compiler/dart2js/type_variable_bound_test.dart |
+++ b/tests/compiler/dart2js/type_variable_bound_test.dart |
@@ -2,110 +2,113 @@ |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
+import 'dart:async'; |
+import "package:async_helper/async_helper.dart"; |
import 'compiler_helper.dart'; |
import "package:expect/expect.dart"; |
-compile(String source) { |
+Future compile(String source) { |
Uri uri = Uri.parse('test:code'); |
var compiler = compilerFor(source, uri); |
- compiler.runCompiler(uri); |
- return compiler; |
+ return compiler.runCompiler(uri).then((_) { |
+ return compiler; |
+ }); |
} |
test1() { |
- var compiler = compile(r""" |
+ asyncTest(() => compile(r""" |
class A<T extends T> {} |
void main() { |
new A(); |
} |
-"""); |
- |
- Expect.isFalse(compiler.compilationFailed); |
- Expect.isTrue(compiler.errors.isEmpty, |
- 'unexpected errors: ${compiler.errors}'); |
- Expect.equals(1, compiler.warnings.length, |
- 'expected exactly one warning, but got ${compiler.warnings}'); |
- |
- Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
- compiler.warnings[0].message.kind); |
- Expect.equals("T", compiler.warnings[0].node.toString()); |
+""").then((compiler) { |
+ Expect.isFalse(compiler.compilationFailed); |
+ Expect.isTrue(compiler.errors.isEmpty, |
+ 'unexpected errors: ${compiler.errors}'); |
+ Expect.equals(1, compiler.warnings.length, |
+ 'expected exactly one warning, but got ${compiler.warnings}'); |
+ |
+ Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
+ compiler.warnings[0].message.kind); |
+ Expect.equals("T", compiler.warnings[0].node.toString()); |
+ })); |
} |
test2() { |
- var compiler = compile(r""" |
+ asyncTest(() => compile(r""" |
class B<T extends S, S extends T> {} |
void main() { |
new B(); |
} |
-"""); |
- |
- Expect.isFalse(compiler.compilationFailed); |
- print(compiler.errors); |
- Expect.isTrue(compiler.errors.isEmpty, 'unexpected errors'); |
- Expect.equals(2, compiler.warnings.length, |
- 'expected exactly one error, but got ${compiler.warnings}'); |
- |
- Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
- compiler.warnings[0].message.kind); |
- Expect.equals("T", compiler.warnings[0].node.toString()); |
- |
- Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
- compiler.warnings[1].message.kind); |
- Expect.equals("S", compiler.warnings[1].node.toString()); |
+""").then((compiler) { |
+ Expect.isFalse(compiler.compilationFailed); |
+ print(compiler.errors); |
+ Expect.isTrue(compiler.errors.isEmpty, 'unexpected errors'); |
+ Expect.equals(2, compiler.warnings.length, |
+ 'expected exactly one error, but got ${compiler.warnings}'); |
+ |
+ Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
+ compiler.warnings[0].message.kind); |
+ Expect.equals("T", compiler.warnings[0].node.toString()); |
+ |
+ Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
+ compiler.warnings[1].message.kind); |
+ Expect.equals("S", compiler.warnings[1].node.toString()); |
+ })); |
} |
test3() { |
- var compiler = compile(r""" |
+ asyncTest(() => compile(r""" |
class C<T extends S, S extends U, U extends T> {} |
void main() { |
new C(); |
} |
-"""); |
- |
- Expect.isFalse(compiler.compilationFailed); |
- print(compiler.errors); |
- Expect.isTrue(compiler.errors.isEmpty, 'unexpected errors'); |
- Expect.equals(3, compiler.warnings.length, |
- 'expected exactly one error, but got ${compiler.warnings}'); |
- |
- Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
- compiler.warnings[0].message.kind); |
- Expect.equals("T", compiler.warnings[0].node.toString()); |
- |
- Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
- compiler.warnings[1].message.kind); |
- Expect.equals("S", compiler.warnings[1].node.toString()); |
- |
- Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
- compiler.warnings[2].message.kind); |
- Expect.equals("U", compiler.warnings[2].node.toString()); |
+""").then((compiler) { |
+ Expect.isFalse(compiler.compilationFailed); |
+ print(compiler.errors); |
+ Expect.isTrue(compiler.errors.isEmpty, 'unexpected errors'); |
+ Expect.equals(3, compiler.warnings.length, |
+ 'expected exactly one error, but got ${compiler.warnings}'); |
+ |
+ Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
+ compiler.warnings[0].message.kind); |
+ Expect.equals("T", compiler.warnings[0].node.toString()); |
+ |
+ Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
+ compiler.warnings[1].message.kind); |
+ Expect.equals("S", compiler.warnings[1].node.toString()); |
+ |
+ Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
+ compiler.warnings[2].message.kind); |
+ Expect.equals("U", compiler.warnings[2].node.toString()); |
+ })); |
} |
test4() { |
- var compiler = compile(r""" |
+ asyncTest(() => compile(r""" |
class D<T extends S, S extends U, U extends S> {} |
void main() { |
new D(); |
} |
-"""); |
- |
- Expect.isFalse(compiler.compilationFailed); |
- print(compiler.errors); |
- Expect.isTrue(compiler.errors.isEmpty, 'unexpected errors'); |
- Expect.equals(2, compiler.warnings.length, |
- 'expected exactly one error, but got ${compiler.warnings}'); |
- |
- Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
- compiler.warnings[0].message.kind); |
- Expect.equals("S", compiler.warnings[0].node.toString()); |
- |
- Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
- compiler.warnings[1].message.kind); |
- Expect.equals("U", compiler.warnings[1].node.toString()); |
+""").then((compiler) { |
+ Expect.isFalse(compiler.compilationFailed); |
+ print(compiler.errors); |
+ Expect.isTrue(compiler.errors.isEmpty, 'unexpected errors'); |
+ Expect.equals(2, compiler.warnings.length, |
+ 'expected exactly one error, but got ${compiler.warnings}'); |
+ |
+ Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
+ compiler.warnings[0].message.kind); |
+ Expect.equals("S", compiler.warnings[0].node.toString()); |
+ |
+ Expect.equals(MessageKind.CYCLIC_TYPE_VARIABLE, |
+ compiler.warnings[1].message.kind); |
+ Expect.equals("U", compiler.warnings[1].node.toString()); |
+ })); |
} |
main() { |