| Index: tests/language/malformed_test.dart
|
| ===================================================================
|
| --- tests/language/malformed_test.dart (revision 25651)
|
| +++ tests/language/malformed_test.dart (working copy)
|
| @@ -6,6 +6,7 @@
|
| // wrong number of type arguments are handled as raw types.
|
|
|
| import 'package:expect/expect.dart';
|
| +import 'package:expect/expect.dart' as prefix; // Define 'prefix'.
|
|
|
| checkIsUnresolved(var v) {
|
| Expect.isTrue(v is Unresolved);
|
| @@ -76,8 +77,7 @@
|
|
|
| checkIsListDynamic(true, []);
|
| checkIsListDynamic(true, <>[]); /// 01: compile-time error
|
| -// TODO(johnniwinther): Create runtime type information on literal lists.
|
| -// checkIsListDynamic(false, <int>[]);
|
| + checkIsListDynamic(false, <int>[]);
|
| checkIsListDynamic(true, <Unresolved>[]);
|
| checkIsListDynamic(true, <Unresolved<int>>[]);
|
| checkIsListDynamic(true, <prefix.Unresolved>[]);
|
| @@ -92,16 +92,16 @@
|
| checkIsListDynamic(true, new List<prefix.Unresolved<int>>());
|
| checkIsListDynamic(true, new List<int, String>());
|
|
|
| + checkIsMapDynamic(true, true, <dynamic, dynamic>{});
|
| checkIsMapDynamic(true, true, {});
|
| checkIsMapDynamic(true, true, <>{}); /// 03: compile-time error
|
| checkIsMapDynamic(true, true, <int>{});
|
| -// TODO(johnniwinther): Create runtime type information on literal maps.
|
| -// checkIsMapDynamic(false, false, <String, int>{});
|
| + checkIsMapDynamic(false, false, <String, int>{});
|
| checkIsMapDynamic(true, true, <String, int, String>{});
|
| -// checkIsMapDynamic(true, false, <Unresolved, int>{});
|
| -// checkIsMapDynamic(false, true, <String, Unresolved<int>>{});
|
| -// checkIsMapDynamic(true, false, <prefix.Unresolved, int>{});
|
| -// checkIsMapDynamic(false, true, <String, prefix.Unresolved<int>>{});
|
| + checkIsMapDynamic(true, false, <Unresolved, int>{});
|
| + checkIsMapDynamic(false, true, <String, Unresolved<int>>{});
|
| + checkIsMapDynamic(true, false, <prefix.Unresolved, int>{});
|
| + checkIsMapDynamic(false, true, <String, prefix.Unresolved<int>>{});
|
|
|
| checkIsMapDynamic(true, true, new Map());
|
| checkIsMapDynamic(true, true, new Map<>); /// 04: compile-time error
|
| @@ -118,28 +118,36 @@
|
| Expect.throws(() => new prefix.Unresolved(), (e) => true);
|
| Expect.throws(() => new prefix.Unresolved<int>(), (e) => true);
|
|
|
| + // The expression 'undeclared_prefix.Unresolved()' is parsed as the invocation
|
| + // of the named constructor 'Unresolved' on the type 'undeclared_prefix'.
|
| + Expect.throws(() => new undeclared_prefix.Unresolved(), (e) => true);
|
| + // The expression 'undeclared_prefix.Unresolved<int>' cannot be parsed.
|
| + Expect.throws(() => new undeclared_prefix.Unresolved<int>(), (e) => true); /// 05: compile-time error
|
| +
|
| try {
|
| throw 'foo';
|
| } on Unresolved catch (e) {
|
| - } catch (e) {
|
| - Expect.fail();
|
| + // Equivalent to 'on dynamic', catches 'foo'.
|
| }
|
| try {
|
| throw 'foo';
|
| } on Unresolved<int> catch (e) {
|
| - } catch (e) {
|
| - Expect.fail();
|
| + // Equivalent to 'on dynamic', catches 'foo'.
|
| }
|
| try {
|
| throw 'foo';
|
| } on prefix.Unresolved catch (e) {
|
| - } catch (e) {
|
| - Expect.fail();
|
| + // Equivalent to 'on dynamic', catches 'foo'.
|
| }
|
| try {
|
| throw 'foo';
|
| } on prefix.Unresolved<int> catch (e) {
|
| - } catch (e) {
|
| - Expect.fail();
|
| + // Equivalent to 'on dynamic', catches 'foo'.
|
| }
|
| + try {
|
| + throw 'foo';
|
| + }
|
| + on undeclared_prefix.Unresolved<int> /// 06: compile-time error
|
| + catch (e) {
|
| + }
|
| }
|
|
|