| // Copyright (c) 2019, 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. | |
| // Invalid uses of "required" modifier. | |
| // Use a language version pre-primary constructors to allow `final` parameter. | |
| // @dart = 3.11 | |
| required int f1( | |
| // [error column 1, length 8] | |
| // [cfe] Can't have modifier 'required' here. | |
| // [analyzer] SYNTACTIC_ERROR.EXTRANEOUS_MODIFIER | |
| required int x, | |
| // [error column 3, length 8] | |
| // [cfe] Can't have modifier 'required' here. | |
| // [analyzer] SYNTACTIC_ERROR.EXTRANEOUS_MODIFIER | |
| ) => throw 0; | |
| required class C1 { | |
| // [error column 1, length 8] | |
| // [cfe] Can't have modifier 'required' here. | |
| // [analyzer] SYNTACTIC_ERROR.EXTRANEOUS_MODIFIER | |
| required int f2 = 0; | |
| // [error column 3, length 8] | |
| // [cfe] Can't have modifier 'required' here. | |
| // [analyzer] SYNTACTIC_ERROR.EXTRANEOUS_MODIFIER | |
| } | |
| // Duplicate modifier | |
| void f2({ | |
| required required int i, | |
| // [error column 3, length 8] | |
| // [cfe] Can't have modifier 'required' here. | |
| // [analyzer] SYNTACTIC_ERROR.EXTRANEOUS_MODIFIER | |
| // ^^^^^^^^ | |
| // [cfe] The modifier 'required' was already specified. | |
| // [analyzer] SYNTACTIC_ERROR.DUPLICATED_MODIFIER | |
| }) {} | |
| // Out of order modifiers | |
| class C2 { | |
| void m({ | |
| required int i1, | |
| covariant required int? i2, | |
| // ^^^^^^^^ | |
| // [cfe] The modifier 'required' should be before the modifier 'covariant'. | |
| // [analyzer] SYNTACTIC_ERROR.MODIFIER_OUT_OF_ORDER | |
| final required int? i3, | |
| // ^^^^^^^^ | |
| // [cfe] The modifier 'required' should be before the modifier 'final'. | |
| // [analyzer] SYNTACTIC_ERROR.MODIFIER_OUT_OF_ORDER | |
| }) {} | |
| } | |
| main() {} |