a1da7e93a4
delayed class parsing in Dart VM. - Some of the tests under tests/language expect compile-time errors but these tests do not use the class which has errors. When the VM will implement delayed parsing of classes (classes are parsed only if they are used) these tests will fail as the Dart VM will not report these as compile-time errors. The option VMOptions=--compile_all has been added to these tests to ensure that all classes are compiled and the error is reported. - One co19 test has a similar issue and a bug has been filed against it (co19 issue 415). the co19-runtime.status file has been updated to skip this test until issue 415 is resolved. R=iposva@google.com Review URL: https://codereview.chromium.org//15496005 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23113 260f80e4-7a28-3924-810f-c04153c831b5
58 lines
2.7 KiB
Dart
58 lines
2.7 KiB
Dart
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
|
// 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.
|
|
// VMOptions=--compile_all
|
|
|
|
class Foo {
|
|
var x;
|
|
f() {}
|
|
|
|
external var x01; /// 01: compile-time error
|
|
external int x02; /// 02: compile-time error
|
|
|
|
external f10(); /// 10: runtime error
|
|
external f11() { } /// 11: compile-time error
|
|
external f12() => 1; /// 12: compile-time error
|
|
external static f13(); /// 13: runtime error
|
|
static external f14(); /// 14: compile-time error
|
|
int external f16(); /// 16: compile-time error
|
|
|
|
external Foo.n20(); /// 20: runtime error
|
|
external Foo.n21() : x(1); /// 21: compile-time error
|
|
external Foo.n22() { x = 1; } /// 22: compile-time error
|
|
external factory Foo.n23() => new Foo(); /// 23: compile-time error
|
|
}
|
|
|
|
external int t06(int i) { } /// 30: compile-time error
|
|
external int t07(int i) => i + 1; /// 31: compile-time error
|
|
|
|
main() {
|
|
|
|
// Try calling an unpatched external function.
|
|
var foo = new Foo(); /// 10: continued
|
|
try { /// 10: continued
|
|
foo.f05(); /// 10: continued
|
|
} on String catch (exc) { /// 10: continued
|
|
if (exc == "External implementation missing.") { /// 10: continued
|
|
throw exc; /// 10: continued
|
|
} /// 10: continued
|
|
} /// 10: continued
|
|
|
|
try { /// 13: continued
|
|
Foo.f13(); /// 13: continued
|
|
} on String catch (exc) { /// 13: continued
|
|
if (exc == "External implementation missing.") { /// 13: continued
|
|
throw exc; /// 13: continued
|
|
} /// 13: continued
|
|
} /// 13: continued
|
|
|
|
// Try calling an unpatched external constructor.
|
|
try { /// 20: continued
|
|
var foo = new Foo.n09(); /// 20: continued
|
|
} on String catch (exc) { /// 20: continued
|
|
if (exc == "External implementation missing.") { /// 20: continued
|
|
throw exc; /// 20: continued
|
|
} /// 20: continued
|
|
} /// 20: continued
|
|
}
|