Files
sdk/tests/language/external_test.dart
T
asiva@google.com a1da7e93a4 Fix some of the negative language tests in preparation for implementing
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
2013-05-23 23:38:56 +00:00

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
}