blob: e5ed818d09d2849934f6a4b9f405976ce1e027a9 [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.
import 'package:expect/expect.dart';
class Thing {
int value = 0;
}
bool get alwaysTrue => DateTime.now().millisecondsSinceEpoch > 42;
void test1() {
final t1 = Thing();
final t2 = Thing();
final t3 = alwaysTrue ? t1 : t2;
t3.value++;
Expect.equals('[1, 0, 1]', [t1.value, t2.value, t3.value].toString());
}
void test2() {
final t1 = Thing();
final t2 = Thing();
final t3 = alwaysTrue ? t1 : t2;
escape(t3);
Expect.equals('[1, 0, 1]', [t1.value, t2.value, t3.value].toString());
}
@pragma('dart2js:never-inline')
void escape(Thing thing) {
thing.value++;
}
void main() {
for (final test in [test1, test2]) {
test();
}
}