Files
sdk/pkg/front_end/test/test_utils.dart
T
Alexander Thomas 9394b30b77 Fix incorrect file reference in license headers
Bug: b/286184681
Change-Id: I903528c4adfbc576644aec7541903df6b9633e26
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/325523
Reviewed-by: Jonas Termansen <sortie@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2023-09-18 06:44:08 +00:00

48 lines
1.8 KiB
Dart

// Copyright (c) 2022, 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:kernel/ast.dart';
/// Writes constant coverage for [component] into [buffer}.
///
/// Libraries for whose import uri [skipImportUri] returns `true` are skipped.
void addConstantCoverageToExpectation(Component component, StringBuffer buffer,
{required bool Function(Uri?) skipImportUri}) {
bool printedConstantCoverageHeader = false;
for (Source source in component.uriToSource.values) {
if (skipImportUri(source.importUri)) continue;
if (source.constantCoverageConstructors != null &&
source.constantCoverageConstructors!.isNotEmpty) {
if (!printedConstantCoverageHeader) {
buffer.writeln("");
buffer.writeln("");
buffer.writeln("Constructor coverage from constants:");
printedConstantCoverageHeader = true;
}
buffer.writeln("${source.fileUri}:");
for (Reference reference in source.constantCoverageConstructors!) {
buffer.writeln(
"- ${reference.node} (from ${locationToString(reference)})");
}
buffer.writeln("");
}
}
}
/// Computes a string representation of the location of the node from
/// [reference].
///
/// References to sdk nodes only include the file uri to avoid unnecessary
/// dependency on sdk library sources.
String locationToString(Reference reference) {
Location? location = reference.node?.location;
if (location != null && location.file.isScheme('org-dartlang-sdk')) {
// Don't include line/column numbers for sdk libraries to avoid unnecessary
// dependency on sdk library sources.
return '${location.file}';
}
return '$location';
}