blob: 09c1e43d3146ae597153e1b941bf474b48e93fcf [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';
@pragma('vm:never-inline')
String leafFunction(void Function() f, bool intoIf) {
if (intoIf) {
f();
}
return 'some constant';
}
const optimizationCounterThreshold = 10;
void testFunction() {
debugger();
// If we do `optimizationCounterThreshold - 2` here optimization doesn't kick
// in and the test (which otherwise currently fails) passes.
for (int i = 0; i < optimizationCounterThreshold; i++) {
leafFunction(() {}, false);
}
// Assuming `leafFunction` is optimized now, does coverage still work?
// Note that I via `--print_flow_graph --print_flow_graph_optimized \
// --print-flow-graph-filter=leafFunction` can see that it is, but that
// `func.code?.isOptimized` is false for whatever reason.
leafFunction(() {}, true);
debugger();
}
Future<void> main([List<String> args = const <String>[]]) {
return startServiceTest(testeeConcurrent: testFunction);
}