2edcad4892
Cleaned up and formatted the tests, regenerated some errors where they were "unspecified", and removed the experiment flag enabling in each test. Bug: https://github.com/dart-lang/sdk/issues/61687 Change-Id: Ic5b652af660cbc4f71731b1547c7a58c7726faca Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/503500 Reviewed-by: Erik Ernst <eernst@google.com> Commit-Queue: Kallen Tu <kallentu@google.com>
98 lines
3.8 KiB
Dart
98 lines
3.8 KiB
Dart
// Copyright (c) 2026, 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.
|
|
|
|
// A compile-time error occurs if an assignment to a primary parameter occurs
|
|
// in the initializing expression of a non-late instance variable.
|
|
|
|
class C(int x, Object? z) {
|
|
Record y = (
|
|
++x,
|
|
//^
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
--x,
|
|
//^
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
x++,
|
|
// [error column 5, length 1]
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
x--,
|
|
// [error column 5, length 1]
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
x = 2,
|
|
// [error column 5, length 1]
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
x += 2,
|
|
// [error column 5, length 1]
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
x -= 2,
|
|
// [error column 5, length 1]
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
(x) = 2,
|
|
// [error column 6, length 1]
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
[x] = [2],
|
|
// [error column 6, length 1]
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
{null: x} = {null: 2},
|
|
// ^
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
(x, name: _) = (2, name: true),
|
|
// [error column 6, length 1]
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
(x && z) = 2,
|
|
// [error column 6, length 1]
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
// ^
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
|
|
int(runtimeType: z) = 2,
|
|
// ^
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
);
|
|
}
|
|
|
|
// A compile-time error occurs if an assignment to a primary parameter occurs
|
|
// in the initializer list of the body part of a primary constructor.
|
|
|
|
class C2(int x) {
|
|
int y;
|
|
|
|
this : y = x++;
|
|
// ^
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
}
|
|
|
|
class C3(int x) {
|
|
this : assert(x++ == 2);
|
|
// ^
|
|
// [analyzer] COMPILE_TIME_ERROR.ASSIGNMENT_TO_PRIMARY_CONSTRUCTOR_PARAMETER
|
|
// [cfe] A primary constructor parameter can't be assigned to in an initializer.
|
|
}
|