[cfe] Move imports/exports to SourceCompilationUnitImpl
Change-Id: I1cb5c38e98d8db7bfedac32c6df359fc505a9d65
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/372083
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
diff --git a/pkg/front_end/lib/src/fasta/builder/library_builder.dart b/pkg/front_end/lib/src/fasta/builder/library_builder.dart
index c67ac71..d267b41 100644
--- a/pkg/front_end/lib/src/fasta/builder/library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/library_builder.dart
@@ -194,7 +194,7 @@
void takeMixinApplications(
Map<SourceClassBuilder, TypeBuilder> mixinApplications);
- void addDependencies(Library library, Set<SourceLibraryBuilder> seen);
+ void addDependencies(Library library, Set<SourceCompilationUnit> seen);
void includeParts(SourceLibraryBuilder libraryBuilder,
List<SourceCompilationUnit> includedParts, Set<Uri> usedParts);
@@ -469,6 +469,10 @@
/// Return the primary message.
Message reportFeatureNotEnabled(
LibraryFeature feature, Uri fileUri, int charOffset, int length);
+
+ void addImportsToScope();
+
+ int finishDeferredLoadTearoffs();
}
abstract class LibraryBuilder implements Builder {
diff --git a/pkg/front_end/lib/src/fasta/builder_graph.dart b/pkg/front_end/lib/src/fasta/builder_graph.dart
index 3dca8eb..3ce20a8 100644
--- a/pkg/front_end/lib/src/fasta/builder_graph.dart
+++ b/pkg/front_end/lib/src/fasta/builder_graph.dart
@@ -4,22 +4,10 @@
library fasta.builder_graph;
-import 'package:kernel/kernel.dart' show LibraryDependency, LibraryPart;
-
import 'package:kernel/util/graph.dart' show Graph;
import 'builder/library_builder.dart';
-import 'export.dart' show Export;
-
-import 'import.dart' show Import;
-
-import 'dill/dill_library_builder.dart' show DillLibraryBuilder;
-
-import 'source/source_library_builder.dart' show SourceLibraryBuilder;
-
-import 'incremental_compiler.dart' show getPartUri;
-
class BuilderGraph implements Graph<Uri> {
final Map<Uri, LibraryBuilder> libraryBuilders;
@@ -36,44 +24,9 @@
if (libraryBuilder == null) {
throw "Library not found: $vertex";
}
- if (libraryBuilder is SourceLibraryBuilder) {
- for (Import import in libraryBuilder.imports) {
- // 'imported' can be null for fake imports, such as dart-ext:.
- if (import.importedCompilationUnit != null) {
- Uri uri = import.importedLibraryBuilder!.importUri;
- if (libraryBuilders.containsKey(uri)) {
- neighbors.add(uri);
- }
- }
- }
- for (Export export in libraryBuilder.exports) {
- Uri uri = export.exportedLibraryBuilder.importUri;
- if (libraryBuilders.containsKey(uri)) {
- neighbors.add(uri);
- }
- }
- for (SourceCompilationUnit part in libraryBuilder.parts) {
- Uri uri = part.importUri;
- if (libraryBuilders.containsKey(uri)) {
- neighbors.add(uri);
- }
- }
- } else if (libraryBuilder is DillLibraryBuilder) {
- // Imports and exports
- for (LibraryDependency dependency
- in libraryBuilder.library.dependencies) {
- Uri uri = dependency.targetLibrary.importUri;
- if (libraryBuilders.containsKey(uri)) {
- neighbors.add(uri);
- }
- }
-
- // Parts
- for (LibraryPart part in libraryBuilder.library.parts) {
- Uri uri = getPartUri(libraryBuilder.importUri, part);
- if (libraryBuilders.containsKey(uri)) {
- neighbors.add(uri);
- }
+ for (Uri importUri in libraryBuilder.dependencies) {
+ if (libraryBuilders.containsKey(importUri)) {
+ neighbors.add(importUri);
}
}
return neighbors;
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
index a81ca91..435f555 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
@@ -30,6 +30,7 @@
import '../kernel/utils.dart';
import '../problems.dart' show internalProblem, unhandled;
import '../scope.dart';
+import '../uris.dart';
import 'dill_class_builder.dart' show DillClassBuilder;
import 'dill_extension_builder.dart';
import 'dill_extension_type_declaration_builder.dart';
@@ -157,8 +158,14 @@
Null get partOfLibrary => null;
@override
- Iterable<Uri> get dependencies => library.dependencies.map(
- (LibraryDependency dependency) => dependency.targetLibrary.importUri);
+ Iterable<Uri> get dependencies sync* {
+ for (LibraryDependency dependency in library.dependencies) {
+ yield dependency.targetLibrary.importUri;
+ }
+ for (LibraryPart part in library.parts) {
+ yield getPartUri(importUri, part);
+ }
+ }
void ensureLoaded() {
if (!isReadyToBuild) throw new StateError("Not ready to build.");
diff --git a/pkg/front_end/lib/src/fasta/incremental_compiler.dart b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
index 52fef32..ae0230d 100644
--- a/pkg/front_end/lib/src/fasta/incremental_compiler.dart
+++ b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
@@ -101,7 +101,7 @@
import 'source/source_loader.dart';
import 'ticker.dart' show Ticker;
import 'uri_translator.dart' show UriTranslator;
-import 'uris.dart' show MALFORMED_URI_SCHEME, dartCore;
+import 'uris.dart' show dartCore, getPartUri;
import 'util/error_reporter_file_copier.dart' show saveAsGzip;
import 'util/experiment_environment_getter.dart'
show enableIncrementalCompilerBenchmarking, getExperimentEnvironment;
@@ -1884,6 +1884,7 @@
isAugmentation: false,
isPatch: false,
);
+ debugLibrary.compilationUnit.createLibrary();
libraryBuilder.scope.forEachLocalMember((name, member) {
debugLibrary.scope.addLocalMember(name, member, setter: false);
});
@@ -1973,6 +1974,7 @@
}
}
+ debugLibrary.compilationUnit.createLibrary();
debugLibrary.buildOutlineNodes(lastGoodKernelTarget.loader.coreLibrary);
Expression compiledExpression = await lastGoodKernelTarget.loader
.buildExpression(
@@ -2222,67 +2224,6 @@
bool _foundExtensionType = false;
}
-/// Translate a parts "partUri" to an actual uri with handling of invalid uris.
-///
-/// ```
-/// DartDocTest(
-/// getPartUri(
-/// Uri.parse("file://path/to/parent.dart"),
-/// new LibraryPart([], "simple.dart")
-/// ),
-/// Uri.parse("file://path/to/simple.dart")
-/// )
-/// DartDocTest(
-/// getPartUri(
-/// Uri.parse("file://path/to/parent.dart"),
-/// new LibraryPart([], "dir/simple.dart")
-/// ),
-/// Uri.parse("file://path/to/dir/simple.dart")
-/// )
-/// DartDocTest(
-/// getPartUri(
-/// Uri.parse("file://path/to/parent.dart"),
-/// new LibraryPart([], "../simple.dart")
-/// ),
-/// Uri.parse("file://path/simple.dart")
-/// )
-/// DartDocTest(
-/// getPartUri(
-/// Uri.parse("file://path/to/parent.dart"),
-/// new LibraryPart([], "file:///my/path/absolute.dart")
-/// ),
-/// Uri.parse("file:///my/path/absolute.dart")
-/// )
-/// DartDocTest(
-/// getPartUri(
-/// Uri.parse("file://path/to/parent.dart"),
-/// new LibraryPart([], "package:foo/hello.dart")
-/// ),
-/// Uri.parse("package:foo/hello.dart")
-/// )
-/// ```
-/// And with invalid part uri:
-/// ```
-/// DartDocTest(
-/// getPartUri(
-/// Uri.parse("file://path/to/parent.dart"),
-/// new LibraryPart([], ":hello")
-/// ),
-/// new Uri(scheme: MALFORMED_URI_SCHEME,
-/// query: Uri.encodeQueryComponent(":hello"))
-/// )
-/// ```
-Uri getPartUri(Uri parentUri, LibraryPart part) {
- try {
- return parentUri.resolve(part.partUri);
- } on FormatException {
- // This is also done in [SourceLibraryBuilder.resolve]
- return new Uri(
- scheme: MALFORMED_URI_SCHEME,
- query: Uri.encodeQueryComponent(part.partUri));
- }
-}
-
class PackageChangedError {
const PackageChangedError();
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index faf23a3..1eabd4f 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -363,6 +363,7 @@
// [SourceLoader.resolveParts]. For macro-generated augmentation libraries
// we instead apply them directly here.
for (SourceLibraryBuilder augmentationLibrary in augmentationLibraries) {
+ augmentationLibrary.compilationUnit.createLibrary();
augmentationLibrary.applyAugmentations();
}
loader.computeLibraryScopes(augmentationLibraries);
diff --git a/pkg/front_end/lib/src/fasta/library_graph.dart b/pkg/front_end/lib/src/fasta/library_graph.dart
index 42fe722..be37142 100644
--- a/pkg/front_end/lib/src/fasta/library_graph.dart
+++ b/pkg/front_end/lib/src/fasta/library_graph.dart
@@ -9,7 +9,7 @@
import 'package:kernel/util/graph.dart' show Graph;
-import 'incremental_compiler.dart' show getPartUri;
+import 'uris.dart' show getPartUri;
class LibraryGraph implements Graph<Uri> {
final Map<Uri, Library> libraries;
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index 3e72e0f..a839aa1 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -122,7 +122,7 @@
class SourceCompilationUnitImpl implements SourceCompilationUnit {
final SourceLibraryBuilder _sourceLibraryBuilder;
- LibraryBuilder? _libraryBuilder;
+ SourceLibraryBuilder? _libraryBuilder;
/// Map used to find objects created in the [OutlineBuilder] from within
/// the [DietListener].
@@ -133,6 +133,10 @@
/// The part directives in this compilation unit.
final List<Part> _parts = [];
+ final List<Import> imports = <Import>[];
+
+ final List<Export> exports = <Export>[];
+
SourceCompilationUnitImpl(this._sourceLibraryBuilder);
@override
@@ -219,7 +223,7 @@
}
@override
- LibraryBuilder get libraryBuilder {
+ SourceLibraryBuilder get libraryBuilder {
assert(_libraryBuilder != null,
"Library builder for $this has not been computed yet.");
return _libraryBuilder!;
@@ -246,7 +250,17 @@
}
@override
- Iterable<Uri> get dependencies => _sourceLibraryBuilder.dependencies;
+ Iterable<Uri> get dependencies sync* {
+ for (Export export in exports) {
+ yield export.exportedCompilationUnit.importUri;
+ }
+ for (Import import in imports) {
+ CompilationUnit? imported = import.importedCompilationUnit;
+ if (imported != null) {
+ yield imported.importUri;
+ }
+ }
+ }
@override
Uri get fileUri => _sourceLibraryBuilder.fileUri;
@@ -299,8 +313,40 @@
String toString() => 'SourceCompilationUnitImpl($fileUri)';
@override
- void addDependencies(Library library, Set<SourceLibraryBuilder> seen) {
- _sourceLibraryBuilder.addDependencies(library, seen);
+ void addDependencies(Library library, Set<SourceCompilationUnit> seen) {
+ if (!seen.add(this)) {
+ return;
+ }
+
+ for (Import import in imports) {
+ // Rather than add a LibraryDependency, we attach an annotation.
+ if (import.nativeImportPath != null) {
+ _sourceLibraryBuilder.addNativeDependency(import.nativeImportPath!);
+ continue;
+ }
+
+ LibraryDependency libraryDependency;
+ if (import.deferred && import.prefixBuilder?.dependency != null) {
+ libraryDependency = import.prefixBuilder!.dependency!;
+ } else {
+ LibraryBuilder imported = import.importedLibraryBuilder!.origin;
+ Library targetLibrary = imported.library;
+ libraryDependency = new LibraryDependency.import(targetLibrary,
+ name: import.prefix,
+ combinators: toKernelCombinators(import.combinators))
+ ..fileOffset = import.charOffset;
+ }
+ library.addDependency(libraryDependency);
+ import.libraryDependency = libraryDependency;
+ }
+ for (Export export in exports) {
+ LibraryDependency libraryDependency = new LibraryDependency.export(
+ export.exportedLibraryBuilder.library,
+ combinators: toKernelCombinators(export.combinators))
+ ..fileOffset = export.charOffset;
+ library.addDependency(libraryDependency);
+ export.libraryDependency = libraryDependency;
+ }
}
@override
@@ -735,11 +781,54 @@
prefixCharOffset,
importIndex,
nativeImportPath: nativePath);
- _sourceLibraryBuilder.imports.add(import);
+ imports.add(import);
offsetMap?.registerImport(importKeyword!, import);
}
@override
+ void addImportsToScope() {
+ bool explicitCoreImport = _sourceLibraryBuilder == loader.coreLibrary;
+ for (Import import in imports) {
+ if (import.importedCompilationUnit?.isPart ?? false) {
+ addProblem(
+ templatePartOfInLibrary
+ .withArguments(import.importedCompilationUnit!.fileUri),
+ import.charOffset,
+ noLength,
+ fileUri);
+ }
+ if (import.importedLibraryBuilder == loader.coreLibrary) {
+ explicitCoreImport = true;
+ }
+ import.finalizeImports(_sourceLibraryBuilder);
+ }
+ if (!explicitCoreImport) {
+ NameIterator<Builder> iterator = loader.coreLibrary.exportScope
+ .filteredNameIterator(
+ includeDuplicates: false, includeAugmentations: false);
+ while (iterator.moveNext()) {
+ _sourceLibraryBuilder.addToScope(
+ iterator.name, iterator.current, -1, true);
+ }
+ }
+ }
+
+ @override
+ int finishDeferredLoadTearoffs() {
+ int total = 0;
+ for (Import import in imports) {
+ if (import.deferred) {
+ Procedure? tearoff = import.prefixBuilder!.loadLibraryBuilder!.tearoff;
+ if (tearoff != null) {
+ library.addProcedure(tearoff);
+ }
+ total++;
+ }
+ }
+ return total;
+ }
+
+ @override
void addExport(
OffsetMap offsetMap,
Token exportKeyword,
@@ -766,7 +855,7 @@
exportedLibrary.addExporter(_sourceLibraryBuilder, combinators, charOffset);
Export export = new Export(
_sourceLibraryBuilder, exportedLibrary, combinators, charOffset);
- _sourceLibraryBuilder.exports.add(export);
+ exports.add(export);
offsetMap.registerExport(exportKeyword, export);
}
@@ -2633,10 +2722,6 @@
final List<SourceCompilationUnit> _parts = [];
- final List<Import> imports = <Import>[];
-
- final List<Export> exports = <Export>[];
-
final Scope importScope;
@override
@@ -3151,14 +3236,10 @@
@override
Iterable<Uri> get dependencies sync* {
- for (Export export in exports) {
- yield export.exportedCompilationUnit.importUri;
- }
- for (Import import in imports) {
- CompilationUnit? imported = import.importedCompilationUnit;
- if (imported != null) {
- yield imported.importUri;
- }
+ yield* compilationUnit.dependencies;
+ for (SourceCompilationUnit part in parts) {
+ yield part.importUri;
+ yield* part.dependencies;
}
}
@@ -3415,7 +3496,7 @@
library.isSynthetic = isSynthetic;
library.isUnsupported = isUnsupported;
- addDependencies(library, new Set<SourceLibraryBuilder>());
+ addDependencies(library, new Set<SourceCompilationUnit>());
library.name = name;
library.procedures.sort(compareProcedures);
@@ -3459,29 +3540,11 @@
}
}
- bool explicitCoreImport = this == loader.coreLibrary;
- for (Import import in imports) {
- if (import.importedCompilationUnit?.isPart ?? false) {
- addProblem(
- templatePartOfInLibrary
- .withArguments(import.importedCompilationUnit!.fileUri),
- import.charOffset,
- noLength,
- fileUri);
- }
- if (import.importedLibraryBuilder == loader.coreLibrary) {
- explicitCoreImport = true;
- }
- import.finalizeImports(this);
- }
- if (!explicitCoreImport) {
- NameIterator<Builder> iterator = loader.coreLibrary.exportScope
- .filteredNameIterator(
- includeDuplicates: false, includeAugmentations: false);
- while (iterator.moveNext()) {
- addToScope(iterator.name, iterator.current, -1, true);
- }
- }
+ compilationUnit.addImportsToScope();
+ // TODO(johnniwinther): Support imports into parts.
+ /*for (SourceCompilationUnit part in parts) {
+ part.addImportsToScope();
+ }*/
NameIterator<Builder> iterator = exportScope.filteredNameIterator(
includeDuplicates: false, includeAugmentations: false);
@@ -4196,40 +4259,8 @@
library.addAnnotation(annotation);
}
- void addDependencies(Library library, Set<SourceLibraryBuilder> seen) {
- if (!seen.add(this)) {
- return;
- }
-
- for (Import import in imports) {
- // Rather than add a LibraryDependency, we attach an annotation.
- if (import.nativeImportPath != null) {
- addNativeDependency(import.nativeImportPath!);
- continue;
- }
-
- LibraryDependency libraryDependency;
- if (import.deferred && import.prefixBuilder?.dependency != null) {
- libraryDependency = import.prefixBuilder!.dependency!;
- } else {
- LibraryBuilder imported = import.importedLibraryBuilder!.origin;
- Library targetLibrary = imported.library;
- libraryDependency = new LibraryDependency.import(targetLibrary,
- name: import.prefix,
- combinators: toKernelCombinators(import.combinators))
- ..fileOffset = import.charOffset;
- }
- library.addDependency(libraryDependency);
- import.libraryDependency = libraryDependency;
- }
- for (Export export in exports) {
- LibraryDependency libraryDependency = new LibraryDependency.export(
- export.exportedLibraryBuilder.library,
- combinators: toKernelCombinators(export.combinators))
- ..fileOffset = export.charOffset;
- library.addDependency(libraryDependency);
- export.libraryDependency = libraryDependency;
- }
+ void addDependencies(Library library, Set<SourceCompilationUnit> seen) {
+ compilationUnit.addDependencies(library, seen);
for (SourceCompilationUnit part in parts) {
part.addDependencies(library, seen);
}
@@ -4326,16 +4357,10 @@
}
}
- for (Import import in imports) {
- if (import.deferred) {
- Procedure? tearoff = import.prefixBuilder!.loadLibraryBuilder!.tearoff;
- if (tearoff != null) {
- library.addProcedure(tearoff);
- }
- total++;
- }
+ total += compilationUnit.finishDeferredLoadTearoffs();
+ for (SourceCompilationUnit part in parts) {
+ total += part.finishDeferredLoadTearoffs();
}
-
return total;
}
diff --git a/pkg/front_end/lib/src/fasta/uris.dart b/pkg/front_end/lib/src/fasta/uris.dart
index 765c5d1..b6191c6 100644
--- a/pkg/front_end/lib/src/fasta/uris.dart
+++ b/pkg/front_end/lib/src/fasta/uris.dart
@@ -2,9 +2,72 @@
// 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';
+
final Uri dartCore = Uri.parse('dart:core');
final Uri missingUri = Uri.parse('org-dartlang-internal:missing');
const String MALFORMED_URI_SCHEME = "org-dartlang-malformed-uri";
bool isNotMalformedUriScheme(Uri uri) => !uri.isScheme(MALFORMED_URI_SCHEME);
+
+/// Translate a parts "partUri" to an actual uri with handling of invalid uris.
+///
+/// ```
+/// DartDocTest(
+/// getPartUri(
+/// Uri.parse("file://path/to/parent.dart"),
+/// new LibraryPart([], "simple.dart")
+/// ),
+/// Uri.parse("file://path/to/simple.dart")
+/// )
+/// DartDocTest(
+/// getPartUri(
+/// Uri.parse("file://path/to/parent.dart"),
+/// new LibraryPart([], "dir/simple.dart")
+/// ),
+/// Uri.parse("file://path/to/dir/simple.dart")
+/// )
+/// DartDocTest(
+/// getPartUri(
+/// Uri.parse("file://path/to/parent.dart"),
+/// new LibraryPart([], "../simple.dart")
+/// ),
+/// Uri.parse("file://path/simple.dart")
+/// )
+/// DartDocTest(
+/// getPartUri(
+/// Uri.parse("file://path/to/parent.dart"),
+/// new LibraryPart([], "file:///my/path/absolute.dart")
+/// ),
+/// Uri.parse("file:///my/path/absolute.dart")
+/// )
+/// DartDocTest(
+/// getPartUri(
+/// Uri.parse("file://path/to/parent.dart"),
+/// new LibraryPart([], "package:foo/hello.dart")
+/// ),
+/// Uri.parse("package:foo/hello.dart")
+/// )
+/// ```
+/// And with invalid part uri:
+/// ```
+/// DartDocTest(
+/// getPartUri(
+/// Uri.parse("file://path/to/parent.dart"),
+/// new LibraryPart([], ":hello")
+/// ),
+/// new Uri(scheme: MALFORMED_URI_SCHEME,
+/// query: Uri.encodeQueryComponent(":hello"))
+/// )
+/// ```
+Uri getPartUri(Uri parentUri, LibraryPart part) {
+ try {
+ return parentUri.resolve(part.partUri);
+ } on FormatException {
+ // This is also done in [SourceLibraryBuilder.resolve]
+ return new Uri(
+ scheme: MALFORMED_URI_SCHEME,
+ query: Uri.encodeQueryComponent(part.partUri));
+ }
+}
diff --git a/pkg/front_end/test/coverage_suite_expected.dart b/pkg/front_end/test/coverage_suite_expected.dart
index 85ea225..47bf38c 100644
--- a/pkg/front_end/test/coverage_suite_expected.dart
+++ b/pkg/front_end/test/coverage_suite_expected.dart
@@ -275,10 +275,10 @@
hitCount: 2,
missCount: 0,
),
- // 57.692307692307686%.
+ // 94.44444444444444%.
"package:front_end/src/fasta/builder_graph.dart": (
- hitCount: 30,
- missCount: 22,
+ hitCount: 17,
+ missCount: 1,
),
// 73.0892742453436%.
"package:front_end/src/codes/cfe_codes_generated.dart": (
@@ -346,9 +346,9 @@
hitCount: 129,
missCount: 25,
),
- // 82.51928020565553%.
+ // 82.69720101781171%.
"package:front_end/src/fasta/dill/dill_library_builder.dart": (
- hitCount: 321,
+ hitCount: 325,
missCount: 68,
),
// 77.03349282296651%.
@@ -401,9 +401,9 @@
hitCount: 96,
missCount: 3,
),
- // 50.64402810304449%.
+ // 50.55718475073314%.
"package:front_end/src/fasta/incremental_compiler.dart": (
- hitCount: 865,
+ hitCount: 862,
missCount: 843,
),
// 0.0%.
@@ -561,10 +561,10 @@
hitCount: 285,
missCount: 3,
),
- // 81.23569794050344%.
+ // 81.1119573495811%.
"package:front_end/src/fasta/kernel/kernel_target.dart": (
hitCount: 1065,
- missCount: 246,
+ missCount: 248,
),
// 61.111111111111114%.
"package:front_end/src/fasta/kernel/kernel_variable_builder.dart": (
@@ -762,10 +762,10 @@
hitCount: 293,
missCount: 35,
),
- // 85.38745387453875%.
+ // 85.27682508574227%.
"package:front_end/src/fasta/source/source_library_builder.dart": (
- hitCount: 3471,
- missCount: 594,
+ hitCount: 3481,
+ missCount: 601,
),
// 81.96357174589072%.
"package:front_end/src/fasta/source/source_loader.dart": (
@@ -787,9 +787,9 @@
hitCount: 330,
missCount: 8,
),
- // 78.37837837837837%.
+ // 80.0%.
"package:front_end/src/fasta/source/stack_listener_impl.dart": (
- hitCount: 29,
+ hitCount: 32,
missCount: 8,
),
// 73.07692307692307%.
@@ -827,9 +827,9 @@
hitCount: 166,
missCount: 29,
),
- // 90.39018177607966%.
+ // 90.38906901343215%.
"package:front_end/src/fasta/type_inference/inference_visitor.dart": (
- hitCount: 7807,
+ hitCount: 7806,
missCount: 830,
),
// 85.96491228070175%.
@@ -907,10 +907,10 @@
hitCount: 41,
missCount: 13,
),
- // 100.0%.
+ // 69.23076923076923%.
"package:front_end/src/fasta/uris.dart": (
- hitCount: 6,
- missCount: 0,
+ hitCount: 9,
+ missCount: 4,
),
// 0.0%.
"package:front_end/src/fasta/util/error_reporter_file_copier.dart": (