blob: 52b339cfdf4c14b684d8efffaacf9efacd621f78 [file]
// 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 'dart:developer';
import 'common/test_helper.dart';
class Foo {
List<String> foos = ['foo1', 'foo2'];
}
@pragma('vm:never-inline')
String leafFunction(List<Foo> foos, bool intoIf) {
if (intoIf) {
for (Foo foo in foos) {
for (var f in foo.foos) {
print(f);
}
}
}
return 'some constant';
}
const optimizationCounterThreshold = 10;
void testFunction() {
debugger();
final List<Foo> foos = [Foo()];
// Note that if we do `optimizationCounterThreshold - 2` here
// optimization doesn't kick in.
for (int i = 0; i < optimizationCounterThreshold; i++) {
leafFunction(foos, false);
}
// Assuming `leafFunction` is optimized now, does coverage still work?
leafFunction(foos, true);
debugger();
}
Future<void> main([List<String> args = const <String>[]]) {
return startServiceTest(testeeConcurrent: testFunction);
}