| // Copyright (c) 2013, 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. |
| |
| // Regression test for Issue 13817. |
| |
| import 'dart:mirrors'; |
| import 'package:expect/expect.dart'; |
| |
| class Tag { |
| final name; |
| const Tag({named}) : this.name = named; |
| } |
| |
| @Tag(named: undefined) |
| // ^^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CONST_WITH_NON_CONSTANT_ARGUMENT |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER |
| // [cfe] Undefined name 'undefined'. |
| class A {} |
| |
| @Tag(named: D.instanceMethod()) |
| // ^^^^^^^^^^^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CONST_EVAL_METHOD_INVOCATION |
| // ^^^^^^^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.STATIC_ACCESS_TO_INSTANCE_MEMBER |
| // [cfe] Member not found: 'D.instanceMethod'. |
| class D { |
| instanceMethod() {} |
| } |
| |
| @Tag(named: instanceField) |
| // ^^^^^^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CONST_WITH_NON_CONSTANT_ARGUMENT |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER |
| // [cfe] Undefined name 'instanceField'. |
| class E { |
| var instanceField; |
| } |
| |
| @Tag(named: F.nonConstStaticField) |
| // [error column 2] |
| // [cfe] Constant evaluation error: |
| // ^^^^^^^^^^^^^^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CONST_WITH_NON_CONSTANT_ARGUMENT |
| class F { |
| static var nonConstStaticField = 6; |
| } |
| |
| @Tag(named: instanceMethod) |
| // ^^^^^^^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CONST_WITH_NON_CONSTANT_ARGUMENT |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER |
| // [cfe] Undefined name 'instanceMethod'. |
| class G { |
| instanceMethod() {} |
| } |
| |
| @Tag(named: this) |
| // ^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CONST_WITH_NON_CONSTANT_ARGUMENT |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_REFERENCE_TO_THIS |
| // [cfe] Expected identifier, but got 'this'. |
| class H { |
| instanceMethod() {} |
| } |
| |
| @Tag(named: super) |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.CONST_WITH_NON_CONSTANT_ARGUMENT |
| // [analyzer] COMPILE_TIME_ERROR.SUPER_IN_INVALID_CONTEXT |
| // [cfe] Expected identifier, but got 'super'. |
| class I { |
| instanceMethod() {} |
| } |
| |
| main() {} |