[cfe] Create SourceFactoryBuilder from fragments
Change-Id: Id9473e5c6cd78cb502c6c7a0a05dc6dc75a79a77
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/385561
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
diff --git a/pkg/front_end/lib/src/builder/member_builder.dart b/pkg/front_end/lib/src/builder/member_builder.dart
index 2064e3e..c83ba4c 100644
--- a/pkg/front_end/lib/src/builder/member_builder.dart
+++ b/pkg/front_end/lib/src/builder/member_builder.dart
@@ -121,9 +121,9 @@
parent is ClassBuilder ? parent as ClassBuilder : null;
@override
+ // Coverage-ignore(suite): Not run.
LibraryBuilder get libraryBuilder {
if (parent is LibraryBuilder) {
- // Coverage-ignore-block(suite): Not run.
LibraryBuilder library = parent as LibraryBuilder;
return library.partOfLibrary ?? library;
} else if (parent is ExtensionBuilder) {
diff --git a/pkg/front_end/lib/src/fragment/fragment.dart b/pkg/front_end/lib/src/fragment/fragment.dart
index 3eeda4f..747561a 100644
--- a/pkg/front_end/lib/src/fragment/fragment.dart
+++ b/pkg/front_end/lib/src/fragment/fragment.dart
@@ -20,6 +20,7 @@
import '../source/source_enum_builder.dart';
import '../source/source_extension_builder.dart';
import '../source/source_extension_type_declaration_builder.dart';
+import '../source/source_factory_builder.dart';
import '../source/source_field_builder.dart';
import '../source/source_procedure_builder.dart';
import '../source/source_type_alias_builder.dart';
@@ -104,16 +105,12 @@
@override
SourceClassBuilder get builder {
- assert(
- _builder != null, // Coverage-ignore(suite): Not run.
- "Builder has not been computed for $this.");
+ assert(_builder != null, "Builder has not been computed for $this.");
return _builder!;
}
void set builder(SourceClassBuilder value) {
- assert(
- _builder == null, // Coverage-ignore(suite): Not run.
- "Builder has already been computed for $this.");
+ assert(_builder == null, "Builder has already been computed for $this.");
_builder = value;
}
@@ -164,16 +161,12 @@
@override
SourceClassBuilder get builder {
- assert(
- _builder != null, // Coverage-ignore(suite): Not run.
- "Builder has not been computed for $this.");
+ assert(_builder != null, "Builder has not been computed for $this.");
return _builder!;
}
void set builder(SourceClassBuilder value) {
- assert(
- _builder == null, // Coverage-ignore(suite): Not run.
- "Builder has already been computed for $this.");
+ assert(_builder == null, "Builder has already been computed for $this.");
_builder = value;
}
@@ -512,16 +505,12 @@
@override
SourceFieldBuilder get builder {
- assert(
- _builder != null, // Coverage-ignore(suite): Not run.
- "Builder has not been computed for $this.");
+ assert(_builder != null, "Builder has not been computed for $this.");
return _builder!;
}
void set builder(SourceFieldBuilder value) {
- assert(
- _builder == null, // Coverage-ignore(suite): Not run.
- "Builder has already been computed for $this.");
+ assert(_builder == null, "Builder has already been computed for $this.");
_builder = value;
}
@@ -571,16 +560,12 @@
@override
SourceProcedureBuilder get builder {
- assert(
- _builder != null, // Coverage-ignore(suite): Not run.
- "Builder has not been computed for $this.");
+ assert(_builder != null, "Builder has not been computed for $this.");
return _builder!;
}
void set builder(SourceProcedureBuilder value) {
- assert(
- _builder == null, // Coverage-ignore(suite): Not run.
- "Builder has already been computed for $this.");
+ assert(_builder == null, "Builder has already been computed for $this.");
_builder = value;
}
@@ -638,16 +623,67 @@
@override
AbstractSourceConstructorBuilder get builder {
- assert(
- _builder != null, // Coverage-ignore(suite): Not run.
- "Builder has not been computed for $this.");
+ assert(_builder != null, "Builder has not been computed for $this.");
return _builder!;
}
void set builder(AbstractSourceConstructorBuilder value) {
- assert(
- _builder == null, // Coverage-ignore(suite): Not run.
- "Builder has already been computed for $this.");
+ assert(_builder == null, "Builder has already been computed for $this.");
+ _builder = value;
+ }
+
+ @override
+ String toString() => '$runtimeType($name,$fileUri,$charOffset)';
+}
+
+class FactoryFragment implements Fragment {
+ final String name;
+ final Uri fileUri;
+ final int startCharOffset;
+ final int charOffset;
+ final int charOpenParenOffset;
+ final int charEndOffset;
+ final int modifiers;
+ final List<MetadataBuilder>? metadata;
+ final TypeBuilder returnType;
+ final List<NominalVariableBuilder>? typeParameters;
+ final List<FormalParameterBuilder>? formals;
+ final Reference? constructorReference;
+ final Reference? tearOffReference;
+ final AsyncMarker asyncModifier;
+ final NameScheme nameScheme;
+ final String? nativeMethodName;
+ final ConstructorReferenceBuilder? redirectionTarget;
+
+ SourceFactoryBuilder? _builder;
+
+ FactoryFragment(
+ {required this.name,
+ required this.fileUri,
+ required this.startCharOffset,
+ required this.charOffset,
+ required this.charOpenParenOffset,
+ required this.charEndOffset,
+ required this.modifiers,
+ required this.metadata,
+ required this.returnType,
+ required this.typeParameters,
+ required this.formals,
+ required this.constructorReference,
+ required this.tearOffReference,
+ required this.asyncModifier,
+ required this.nameScheme,
+ required this.nativeMethodName,
+ required this.redirectionTarget});
+
+ @override
+ SourceFactoryBuilder get builder {
+ assert(_builder != null, "Builder has not been computed for $this.");
+ return _builder!;
+ }
+
+ void set builder(SourceFactoryBuilder value) {
+ assert(_builder == null, "Builder has already been computed for $this.");
_builder = value;
}
diff --git a/pkg/front_end/lib/src/source/name_scheme.dart b/pkg/front_end/lib/src/source/name_scheme.dart
index 99e8d69..28a4d38 100644
--- a/pkg/front_end/lib/src/source/name_scheme.dart
+++ b/pkg/front_end/lib/src/source/name_scheme.dart
@@ -236,6 +236,7 @@
if (_reference != value) {
_reference = value;
for (MemberName name in _memberNames) {
+ // Coverage-ignore-block(suite): Not run.
name.updateMemberName();
}
}
diff --git a/pkg/front_end/lib/src/source/offset_map.dart b/pkg/front_end/lib/src/source/offset_map.dart
index e565841..8b79213 100644
--- a/pkg/front_end/lib/src/source/offset_map.dart
+++ b/pkg/front_end/lib/src/source/offset_map.dart
@@ -25,8 +25,8 @@
final Uri uri;
final Map<int, DeclarationFragment> _declarationFragments = {};
final Map<int, FieldFragment> _fields = {};
- final Map<int, SourceFunctionBuilder> _constructors = {};
final Map<int, ConstructorFragment> _constructorFragments = {};
+ final Map<int, FactoryFragment> _factoryFragments = {};
final Map<int, MethodFragment> _procedures = {};
final Map<int, LibraryPart> _parts = {};
final Map<int, Import> _imports = {};
@@ -112,20 +112,20 @@
'<primary-constructor>', beginToken.charOffset);
}
- void registerConstructor(
- Identifier identifier, SourceFunctionBuilder builder) {
- _constructors[identifier.nameOffset] = builder;
- }
-
void registerConstructorFragment(
Identifier identifier, ConstructorFragment fragment) {
_constructorFragments[identifier.nameOffset] = fragment;
}
+ void registerFactoryFragment(
+ Identifier identifier, FactoryFragment fragment) {
+ _factoryFragments[identifier.nameOffset] = fragment;
+ }
+
SourceFunctionBuilder lookupConstructor(Identifier identifier) {
return _checkBuilder(
- _constructors[identifier.nameOffset] ??
- _constructorFragments[identifier.nameOffset]?.builder,
+ _constructorFragments[identifier.nameOffset]?.builder ??
+ _factoryFragments[identifier.nameOffset]?.builder,
identifier.name,
identifier.nameOffset);
}
diff --git a/pkg/front_end/lib/src/source/source_builder_factory.dart b/pkg/front_end/lib/src/source/source_builder_factory.dart
index 38e1760..0c2495d 100644
--- a/pkg/front_end/lib/src/source/source_builder_factory.dart
+++ b/pkg/front_end/lib/src/source/source_builder_factory.dart
@@ -58,8 +58,6 @@
import 'offset_map.dart';
import 'source_class_builder.dart' show SourceClassBuilder;
import 'source_enum_builder.dart';
-import 'source_factory_builder.dart';
-import 'source_function_builder.dart';
import 'source_library_builder.dart';
import 'source_loader.dart' show SourceLoader;
import 'type_parameter_scope_builder.dart';
@@ -121,7 +119,7 @@
final List<StructuralVariableBuilder> _unboundStructuralVariables = [];
- final List<SourceFunctionBuilder> _nativeMethods = [];
+ final List<FactoryFragment> _nativeFactoryFragments = [];
final List<MethodFragment> _nativeMethodFragments = [];
@@ -1934,69 +1932,37 @@
.getConstructorMemberName(procedureName, isTearOff: true)
.name);
}
-
- SourceFactoryBuilder procedureBuilder;
- List<NominalVariableBuilder>? typeVariables;
- if (redirectionTarget != null) {
- procedureBuilder = new RedirectingFactoryBuilder(
- metadata,
- staticMask | modifiers,
- returnType,
- procedureName,
- typeVariables = copyTypeVariables(
- _unboundNominalVariables, enclosingDeclaration.typeParameters,
- kind: TypeVariableKind.function,
- instanceTypeVariableAccess:
- InstanceTypeVariableAccessState.Allowed)
- ?.newVariableBuilders,
- formals,
- _parent,
- _compilationUnit.fileUri,
- startCharOffset,
- charOffset,
- charOpenParenOffset,
- charEndOffset,
- constructorReference,
- tearOffReference,
- procedureNameScheme,
- nativeMethodName,
- redirectionTarget);
- (_parent.redirectingFactoryBuilders ??= [])
- .add(procedureBuilder as RedirectingFactoryBuilder);
- } else {
- procedureBuilder = new SourceFactoryBuilder(
- metadata,
- staticMask | modifiers,
- returnType,
- procedureName,
- typeVariables = copyTypeVariables(
- _unboundNominalVariables, enclosingDeclaration.typeParameters,
- kind: TypeVariableKind.function,
- instanceTypeVariableAccess:
- InstanceTypeVariableAccessState.Allowed)
- ?.newVariableBuilders,
- formals,
- _parent,
- _compilationUnit.fileUri,
- startCharOffset,
- charOffset,
- charOpenParenOffset,
- charEndOffset,
- constructorReference,
- tearOffReference,
- asyncModifier,
- procedureNameScheme,
- nativeMethodName: nativeMethodName);
- }
+ List<NominalVariableBuilder>? typeVariables = copyTypeVariables(
+ _unboundNominalVariables, enclosingDeclaration.typeParameters,
+ kind: TypeVariableKind.function,
+ instanceTypeVariableAccess: InstanceTypeVariableAccessState.Allowed)
+ ?.newVariableBuilders;
+ FactoryFragment fragment = new FactoryFragment(
+ name: procedureName,
+ fileUri: _compilationUnit.fileUri,
+ startCharOffset: startCharOffset,
+ charOffset: charOffset,
+ charOpenParenOffset: charOpenParenOffset,
+ charEndOffset: charEndOffset,
+ modifiers: staticMask | modifiers,
+ metadata: metadata,
+ returnType: returnType,
+ typeParameters: typeVariables,
+ formals: formals,
+ constructorReference: constructorReference,
+ tearOffReference: tearOffReference,
+ asyncModifier: asyncModifier,
+ nameScheme: procedureNameScheme,
+ nativeMethodName: nativeMethodName,
+ redirectionTarget: redirectionTarget);
if (returnTypeArguments != null && typeVariables != null) {
for (TypeVariableBuilder typeVariable in typeVariables) {
returnTypeArguments.add(addNamedType(
- new SyntheticTypeName(
- typeVariable.name, procedureBuilder.charOffset),
+ new SyntheticTypeName(typeVariable.name, charOffset),
const NullabilityBuilder.omitted(),
null,
- procedureBuilder.charOffset,
+ charOffset,
instanceTypeVariableAccess:
InstanceTypeVariableAccessState.Allowed));
}
@@ -2009,12 +1975,11 @@
_problemReporting, typeVariables,
ownerName: identifier.name, allowNameConflict: true);
- _addBuilder(procedureName, procedureBuilder, charOffset,
- getterReference: constructorReference);
+ _addFragment(fragment, getterReference: constructorReference);
if (nativeMethodName != null) {
- _addNativeMethod(procedureBuilder);
+ _addNativeFactoryFragment(fragment);
}
- offsetMap.registerConstructor(identifier, procedureBuilder);
+ offsetMap.registerFactoryFragment(identifier, fragment);
}
@override
@@ -2113,8 +2078,8 @@
_nativeConstructorFragments.add(fragment);
}
- void _addNativeMethod(SourceFunctionBuilder method) {
- _nativeMethods.add(method);
+ void _addNativeFactoryFragment(FactoryFragment method) {
+ _nativeFactoryFragments.add(method);
}
@override
@@ -2639,25 +2604,6 @@
return _compilationUnit.loader.inferableTypes.addInferableType();
}
- void _addBuilder(String name, Builder declaration, int charOffset,
- {Reference? getterReference, Reference? setterReference}) {
- if (getterReference != null) {
- loader.buildersCreatedWithReferences[getterReference] = declaration;
- }
- if (setterReference != null) {
- // Coverage-ignore-block(suite): Not run.
- loader.buildersCreatedWithReferences[setterReference] = declaration;
- }
- if (_declarationFragments.isEmpty) {
- // Coverage-ignore-block(suite): Not run.
- _libraryNameSpaceBuilder.addBuilder(
- name, declaration, _compilationUnit.fileUri, charOffset);
- } else {
- _declarationFragments.current
- .addBuilder(name, declaration, _compilationUnit.fileUri, charOffset);
- }
- }
-
void _addFragment(Fragment fragment,
{Reference? getterReference, Reference? setterReference}) {
if (getterReference != null) {
@@ -2727,8 +2673,8 @@
@override
int finishNativeMethods() {
- for (SourceFunctionBuilder method in _nativeMethods) {
- method.becomeNative(loader);
+ for (FactoryFragment fragment in _nativeFactoryFragments) {
+ fragment.builder.becomeNative(loader);
}
for (MethodFragment fragment in _nativeMethodFragments) {
fragment.builder.becomeNative(loader);
@@ -2736,7 +2682,7 @@
for (ConstructorFragment fragment in _nativeConstructorFragments) {
fragment.builder.becomeNative(loader);
}
- return _nativeMethods.length;
+ return _nativeFactoryFragments.length;
}
@override
diff --git a/pkg/front_end/lib/src/source/source_factory_builder.dart b/pkg/front_end/lib/src/source/source_factory_builder.dart
index c33edf2..230dd23 100644
--- a/pkg/front_end/lib/src/source/source_factory_builder.dart
+++ b/pkg/front_end/lib/src/source/source_factory_builder.dart
@@ -45,6 +45,9 @@
import 'source_member_builder.dart';
class SourceFactoryBuilder extends SourceFunctionBuilderImpl {
+ @override
+ final SourceLibraryBuilder libraryBuilder;
+
final int charOpenParenOffset;
AsyncMarker actualAsyncModifier = AsyncMarker.Sync;
@@ -73,7 +76,8 @@
String name,
List<NominalVariableBuilder>? typeVariables,
List<FormalParameterBuilder>? formals,
- SourceLibraryBuilder libraryBuilder,
+ this.libraryBuilder,
+ DeclarationBuilder declarationBuilder,
Uri fileUri,
int startCharOffset,
int charOffset,
@@ -85,15 +89,15 @@
NameScheme nameScheme,
{String? nativeMethodName})
: _memberName = nameScheme.getDeclaredName(name),
- super(metadata, modifiers, name, typeVariables, formals, libraryBuilder,
- fileUri, charOffset, nativeMethodName) {
+ super(metadata, modifiers, name, typeVariables, formals,
+ declarationBuilder, fileUri, charOffset, nativeMethodName) {
_procedureInternal = new Procedure(
dummyName,
nameScheme.isExtensionTypeMember
? ProcedureKind.Method
: ProcedureKind.Factory,
new FunctionNode(null),
- fileUri: libraryBuilder.fileUri,
+ fileUri: fileUri,
reference: procedureReference)
..fileStartOffset = startCharOffset
..fileOffset = charOffset
@@ -105,7 +109,7 @@
_factoryTearOff = createFactoryTearOffProcedure(
nameScheme.getConstructorMemberName(name, isTearOff: true),
libraryBuilder,
- libraryBuilder.fileUri,
+ fileUri,
charOffset,
tearOffReference,
forceCreateLowering: nameScheme.isExtensionTypeMember)
@@ -367,6 +371,7 @@
List<NominalVariableBuilder>? typeVariables,
List<FormalParameterBuilder>? formals,
SourceLibraryBuilder libraryBuilder,
+ DeclarationBuilder declarationBuilder,
Uri fileUri,
int startCharOffset,
int charOffset,
@@ -385,6 +390,7 @@
typeVariables,
formals,
libraryBuilder,
+ declarationBuilder,
fileUri,
startCharOffset,
charOffset,
diff --git a/pkg/front_end/lib/src/source/source_member_builder.dart b/pkg/front_end/lib/src/source/source_member_builder.dart
index 19aa8b0..a93e1c0 100644
--- a/pkg/front_end/lib/src/source/source_member_builder.dart
+++ b/pkg/front_end/lib/src/source/source_member_builder.dart
@@ -124,10 +124,6 @@
super(parent, fileUri, charOffset);
@override
- SourceLibraryBuilder get libraryBuilder =>
- super.libraryBuilder as SourceLibraryBuilder;
-
- @override
bool get isAugmentation => modifiers & augmentMask != 0;
bool? _isConflictingSetter;
diff --git a/pkg/front_end/lib/src/source/type_parameter_scope_builder.dart b/pkg/front_end/lib/src/source/type_parameter_scope_builder.dart
index 23e0200..f9fd53f 100644
--- a/pkg/front_end/lib/src/source/type_parameter_scope_builder.dart
+++ b/pkg/front_end/lib/src/source/type_parameter_scope_builder.dart
@@ -23,6 +23,7 @@
import 'source_enum_builder.dart';
import 'source_extension_builder.dart';
import 'source_extension_type_declaration_builder.dart';
+import 'source_factory_builder.dart';
import 'source_field_builder.dart';
import 'source_library_builder.dart';
import 'source_loader.dart';
@@ -40,24 +41,6 @@
required List<_AddBuilder> builders});
}
-class _AddedBuilder implements _Added {
- final _AddBuilder builder;
-
- _AddedBuilder(this.builder);
-
- @override
- void getAddBuilders(
- {required ProblemReporting problemReporting,
- required SourceLoader loader,
- required SourceLibraryBuilder enclosingLibraryBuilder,
- DeclarationBuilder? declarationBuilder,
- required List<NominalVariableBuilder> unboundNominalVariables,
- required Map<SourceClassBuilder, TypeBuilder> mixinApplications,
- required List<_AddBuilder> builders}) {
- builders.add(builder);
- }
-}
-
class _AddedFragment implements _Added {
final Fragment fragment;
@@ -457,6 +440,54 @@
fragment.builder = constructorBuilder;
builders.add(new _AddBuilder(fragment.name, constructorBuilder,
fragment.fileUri, fragment.charOffset));
+ case FactoryFragment():
+ SourceFactoryBuilder factoryBuilder;
+ if (fragment.redirectionTarget != null) {
+ factoryBuilder = new RedirectingFactoryBuilder(
+ fragment.metadata,
+ fragment.modifiers,
+ fragment.returnType,
+ fragment.name,
+ fragment.typeParameters,
+ fragment.formals,
+ enclosingLibraryBuilder,
+ declarationBuilder!,
+ fragment.fileUri,
+ fragment.startCharOffset,
+ fragment.charOffset,
+ fragment.charOpenParenOffset,
+ fragment.charEndOffset,
+ fragment.constructorReference,
+ fragment.tearOffReference,
+ fragment.nameScheme,
+ fragment.nativeMethodName,
+ fragment.redirectionTarget!);
+ (enclosingLibraryBuilder.redirectingFactoryBuilders ??= [])
+ .add(factoryBuilder as RedirectingFactoryBuilder);
+ } else {
+ factoryBuilder = new SourceFactoryBuilder(
+ fragment.metadata,
+ fragment.modifiers,
+ fragment.returnType,
+ fragment.name,
+ fragment.typeParameters,
+ fragment.formals,
+ enclosingLibraryBuilder,
+ declarationBuilder!,
+ fragment.fileUri,
+ fragment.startCharOffset,
+ fragment.charOffset,
+ fragment.charOpenParenOffset,
+ fragment.charEndOffset,
+ fragment.constructorReference,
+ fragment.tearOffReference,
+ fragment.asyncModifier,
+ fragment.nameScheme,
+ nativeMethodName: fragment.nativeMethodName);
+ }
+ fragment.builder = factoryBuilder;
+ builders.add(new _AddBuilder(fragment.name, factoryBuilder,
+ fragment.fileUri, fragment.charOffset));
}
}
}
@@ -468,13 +499,6 @@
List<_Added> _added = [];
- // Coverage-ignore(suite): Not run.
- void addBuilder(
- String name, Builder declaration, Uri fileUri, int charOffset) {
- _added.add(new _AddedBuilder(
- new _AddBuilder(name, declaration, fileUri, charOffset)));
- }
-
void addFragment(Fragment fragment) {
_added.add(new _AddedFragment(fragment));
}
@@ -715,12 +739,6 @@
(primaryConstructorFields ??= []).add(builder);
}
- void addBuilder(
- String name, Builder declaration, Uri fileUri, int charOffset) {
- _added.add(new _AddedBuilder(
- new _AddBuilder(name, declaration, fileUri, charOffset)));
- }
-
void addFragment(Fragment fragment) {
_added.add(new _AddedFragment(fragment));
}
diff --git a/pkg/front_end/test/coverage_suite_expected.dart b/pkg/front_end/test/coverage_suite_expected.dart
index a657052..ff120dc 100644
--- a/pkg/front_end/test/coverage_suite_expected.dart
+++ b/pkg/front_end/test/coverage_suite_expected.dart
@@ -325,7 +325,7 @@
),
// 100.0%.
"package:front_end/src/builder/member_builder.dart": (
- hitCount: 146,
+ hitCount: 133,
missCount: 0,
),
// 100.0%.
@@ -480,7 +480,7 @@
),
// 100.0%.
"package:front_end/src/fragment/fragment.dart": (
- hitCount: 103,
+ hitCount: 120,
missCount: 0,
),
// 100.0%.
@@ -785,12 +785,12 @@
),
// 100.0%.
"package:front_end/src/source/name_scheme.dart": (
- hitCount: 219,
+ hitCount: 217,
missCount: 0,
),
// 100.0%.
"package:front_end/src/source/offset_map.dart": (
- hitCount: 122,
+ hitCount: 132,
missCount: 0,
),
// 100.0%.
@@ -805,7 +805,7 @@
),
// 100.0%.
"package:front_end/src/source/source_builder_factory.dart": (
- hitCount: 1401,
+ hitCount: 1370,
missCount: 0,
),
// 100.0%.
@@ -825,12 +825,12 @@
),
// 100.0%.
"package:front_end/src/source/source_constructor_builder.dart": (
- hitCount: 871,
+ hitCount: 866,
missCount: 0,
),
// 100.0%.
"package:front_end/src/source/source_enum_builder.dart": (
- hitCount: 525,
+ hitCount: 523,
missCount: 0,
),
// 100.0%.
@@ -846,7 +846,7 @@
),
// 100.0%.
"package:front_end/src/source/source_factory_builder.dart": (
- hitCount: 583,
+ hitCount: 586,
missCount: 0,
),
// 100.0%.
@@ -871,7 +871,7 @@
),
// 100.0%.
"package:front_end/src/source/source_member_builder.dart": (
- hitCount: 25,
+ hitCount: 23,
missCount: 0,
),
// 100.0%.
@@ -891,7 +891,7 @@
),
// 100.0%.
"package:front_end/src/source/type_parameter_scope_builder.dart": (
- hitCount: 544,
+ hitCount: 624,
missCount: 0,
),
// 100.0%.
@@ -936,7 +936,7 @@
),
// 100.0%.
"package:front_end/src/type_inference/matching_cache.dart": (
- hitCount: 546,
+ hitCount: 545,
missCount: 0,
),
// 100.0%.