blob: 5ffc588ed5a3f05c94ad6d50444a3145705bb61d [file] [log] [blame]
// Copyright (c) 2021, 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.
// Regression test for https://github.com/dart-lang/sdk/issues/46141.
// Verifies that unboxing of phi corresponding to a late variable doesn't
// happen.
// VMOptions=--deterministic
import 'package:expect/expect.dart';
final values = List.filled(100, 0.0);
double? fn(double day) {
double? last;
late int lastDay;
int i = 0;
while (i < values.length) {
final t = values[i];
if (day > 95) {
print(lastDay);
break;
}
last = t;
lastDay = i;
i++;
}
return last;
}
void main() {
for (int i = 0; i < values.length; i++) {
bool wasError = false;
try {
fn(i.toDouble());
} on Error {
wasError = true;
}
Expect.isTrue(wasError == (i > 95));
}
}