| // Copyright (c) 2020, 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. |
| |
| /// @assertion The grammar is modified as follows: |
| /// |
| /// <topLevelDefinition> ::= |
| /// ... | |
| /// // New alternative. |
| /// 'external' <finalVarOrType> <identifierList> ';' |
| /// |
| /// <finalVarOrType> ::= // New rule. |
| /// 'final' <type>? | |
| /// <varOrType> |
| /// |
| /// <declaration> ::= |
| /// ... | |
| /// // New alternative. |
| /// 'external' ('static'? <finalVarOrType> | 'covariant' <varOrType>) |
| /// <identifierList> | |
| /// // New alternative. |
| /// 'abstract' (<finalVarOrType> | 'covariant' <varOrType>) <identifierList> |
| /// |
| /// @description Checks topLevelDefinition syntax |
| /// @author sgrekhov@unipro.ru |
| /// @issue 43855 |
| |
| abstract class C { |
| final abstract int i1; |
| //^^^^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| final abstract i2; |
| //^^^^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| } |
| |
| main() { |
| C? c; |
| } |