blob: 7d2f2af1f4c8ae10414b4c1cc69dc790cbd237b4 [file] [log] [blame]
// 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.
class Bar {
Bar(val);
}
class Foo {
// ^
// [cfe] The non-abstract class 'Foo' is missing implementations for these members:
var x;
f() {}
Foo() : x = 0;
// fields can't be declared external
external var x01;
//^^^^^^^^
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_FIELD
// [cfe] Fields can't be declared to be 'external'.
external int x02;
//^^^^^^^^
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_FIELD
// [cfe] Fields can't be declared to be 'external'.
external f11() { }
// ^
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_METHOD_WITH_BODY
// [cfe] An external or native method can't have a body.
external f12() => 1;
// ^^
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_METHOD_WITH_BODY
// [cfe] An external or native method can't have a body.
// ^
// [cfe] An external or native method can't have a body.
static external f14();
// ^^^^^^^^
// [analyzer] SYNTACTIC_ERROR.MODIFIER_OUT_OF_ORDER
// [cfe] The modifier 'external' should be before the modifier 'static'.
int external f16();
// ^^^^^^^^
// [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN
// [cfe] Expected ';' after this.
// ^^^^^^
// [analyzer] COMPILE_TIME_ERROR.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER
external Foo.n21(val) : x = 1;
// ^
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_CONSTRUCTOR_WITH_INITIALIZER
// [cfe] An external constructor can't have any initializers.
external Foo.n22(val) { x = 1; }
// ^
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_METHOD_WITH_BODY
// [cfe] An external or native method can't have a body.
external factory Foo.n23(val) => new Foo();
// ^^
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_FACTORY_WITH_BODY
// [cfe] External factories can't have a body.
// ^
// [cfe] An external or native method can't have a body.
external Foo.n24(this.x);
// ^
// [cfe] An external constructor can't initialize fields.
external factory Foo.n25(val) = Bar;
// ^
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_FACTORY_REDIRECTION
// [cfe] A redirecting factory can't be external.
// ^^^
// [analyzer] COMPILE_TIME_ERROR.REDIRECT_TO_INVALID_RETURN_TYPE
// [cfe] The constructor function type 'Bar Function(dynamic)' isn't a subtype of 'Foo Function(dynamic)'.
}
external int t06(int i) { }
// [error line 74, column 1, length 8]
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_METHOD_WITH_BODY
// [cfe] An external or native method can't have a body.
// ^
// [cfe] An external or native method can't have a body.
external int t07(int i) => i + 1;
// [error line 80, column 1, length 8]
// [analyzer] SYNTACTIC_ERROR.EXTERNAL_METHOD_WITH_BODY
// [cfe] An external or native method can't have a body.
// ^
// [cfe] An external or native method can't have a body.
main() {
// Ensure Foo class is compiled.
var foo = new Foo();
new Foo().f11();
new Foo().f12();
Foo.f14();
new Foo().f16();
new Foo.n21(1);
new Foo.n22(1);
new Foo.n23(1);
new Foo.n24(1);
new Foo.n25(1);
t06(1);
t07(1);
}