| // 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 = -1; | |
| f() {} | |
| Foo() : x = 0; | |
| //^^^ | |
| // [analyzer] COMPILE_TIME_ERROR.NOT_INITIALIZED_NON_NULLABLE_INSTANCE_FIELD | |
| // [cfe] This constructor should initialize field 'external' because its type 'int' doesn't allow null. | |
| external var x01; | |
| external int x02; | |
| 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); | |
| // ^^^^ | |
| // [analyzer] SYNTACTIC_ERROR.EXTERNAL_CONSTRUCTOR_WITH_FIELD_INITIALIZERS | |
| // ^ | |
| // [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) { return 1; } | |
| // ^ | |
| // [analyzer] SYNTACTIC_ERROR.EXTERNAL_METHOD_WITH_BODY | |
| // [error column 1, length 8] | |
| // [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; | |
| // ^^ | |
| // [analyzer] SYNTACTIC_ERROR.EXTERNAL_METHOD_WITH_BODY | |
| // [error column 1, length 8] | |
| // [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); | |
| } |