| // 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. |
| |
| // @dart = 2.9 |
| |
| 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 76, 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 82, 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); |
| } |