| Index: tests/language/src/Prefix16Test.dart
|
| ===================================================================
|
| --- tests/language/src/Prefix16Test.dart (revision 6753)
|
| +++ tests/language/src/Prefix16Test.dart (working copy)
|
| @@ -2,13 +2,47 @@
|
| // 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.
|
| //
|
| -// Unresolved symbols should be reported as an error.
|
| +// Unresolved imported symbols are handled differently in production mode and
|
| +// check modes. In this test, the function myFunc is malformed, because
|
| +// lib12.Library13 is not resolved.
|
| +// In checked mode, the assignment type check throws a run time type error.
|
| +// In production, no assignment type checks are performed.
|
|
|
| #library("Prefix16NegativeTest.dart");
|
| #import("library12.dart", prefix:"lib12");
|
|
|
| typedef lib12.Library13 myFunc(lib12.Library13 param);
|
|
|
| +isCheckedMode() {
|
| + try {
|
| + var i = 1;
|
| + String s = i;
|
| + return false;
|
| + } catch(var e) {
|
| + return true;
|
| + }
|
| +}
|
| +
|
| main() {
|
| - myFunc i = 0;
|
| + {
|
| + bool got_type_error = false;
|
| + try {
|
| + myFunc i = 0;
|
| + } catch (TypeError error) {
|
| + got_type_error = true;
|
| + }
|
| + // Type error in checked mode only.
|
| + Expect.isTrue(got_type_error == isCheckedMode());
|
| + }
|
| + {
|
| + bool got_type_error = false;
|
| + try {
|
| + // In production mode, malformed myFunc is mapped to (Dynamic) => Dynamic.
|
| + Expect.isTrue(((int x) => x) is myFunc);
|
| + } catch (TypeError error) {
|
| + got_type_error = true;
|
| + }
|
| + // Type error in checked mode only.
|
| + Expect.isTrue(got_type_error == isCheckedMode());
|
| + }
|
| }
|
|
|