Files
sdk/pkg/front_end/testcases/patterns/for_final_variable.dart
T
Johnni Winther 9eeee6e04c [cfe] Set finality on pattern variables in for loops
In response to part of https://github.com/dart-lang/sdk/issues/50852

Change-Id: Ie098999bb39b5f739ce6714c6a025ff1c036815a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/291241
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2023-03-28 13:18:24 +00:00

60 lines
1.6 KiB
Dart

// Copyright (c) 2023, 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.
testFor() {
for (final int i = 0; i < 3; i = i + 1) {
print(i); // Error
}
for (final (int i) = 0; i < 3; i = i + 1) {
print(i); // Error
}
for (var (final int i, String s) = (0, ''); i < 3; i = i + 1) {
print(i); // Error
}
for (var (int i, final String s) = (0, ''); i < 3; i = i + 1) {
print(i); // Ok
}
var l1 = [
for (final int i = 0; i < 3; i = i + 1) i, // Error
];
var l2 = [
for (final (int i) = 0; i < 3; i = i + 1) i, // Error
];
var l3 = [
for (var (final int i, String s) = (0, ''); i < 3; i = i + 1) i, // Error
];
var l4 = [
for (var (int i, final String s) = (0, ''); i < 3; i = i + 1) i, // Ok
];
}
testForIn() {
for (final int i in [1, 2, 3]) {
i = i + 1; // Error
}
for (final (int i) in [1, 2, 3]) {
i = i + 1; // Error
}
for (var (final int i, String s) in [(1, 'a'), (2, 'b'), (3, 'c')]) {
i = i + 1; // Error
}
for (var (int i, final String s) in [(1, 'a'), (2, 'b'), (3, 'c')]) {
i = i + 1; // Ok
}
var l1 = [
for (final int i in [1, 2, 3]) i = i + 1 // Error
];
var l2 = [
for (final (int i) in [1, 2, 3]) i = i + 1 // Error
];
var l3 = [
for (var (final int i, String s) in [(1, 'a'), (2, 'b'), (3, 'c')])
i = i + 1 // Error
];
var l4 = [
for (var (int i, final String s) in [(1, 'a'), (2, 'b'), (3, 'c')])
i = i + 1 // Ok
];
}