blob: 82c7e55ff9841cbaaf13b70dafc14f27c1e2bcef [file] [edit]
// 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.
// Derived from
// LanguageFeatures/Patterns/execution_pattern_for_element_A01_t05.dart
class Square(final double length) {
double get areaAsDouble => length * length;
int get areaAsInt => areaAsDouble.toInt();
}
main() {
var list = [
0,
for (
var Square(:areaAsInt) = Square(1);
areaAsInt <= 9;
Square(:areaAsInt) = Square((++areaAsInt).toDouble())
)
areaAsInt,
42,
];
expect([0, 1, 4, 42], list);
}
expect<T>(List<T> expected, List<T> actual) {
if (expected.length != actual.length) {
throw 'Length mismatch: Expected $expected of length '
'${expected.length}. Actual $actual of length ${actual.length}.';
}
for (int i = 0; i < expected.length; i++) {
if (expected[i] != actual[i]) {
throw 'Expected ${expected[i]}, actual ${actual[i]} at index $i';
}
}
}