[cfe] Use TypeParameterScopeBuilder.toNameSpace
Use TypeParameterScopeBuilder.toNameSpace to create name spaces for
classes, enums, extensions, and extension types. This is a step towards
encapsulating the name space computation so that it can be moved til
after SourceLoader.resolveParts
Change-Id: Icecf9a46519c77bbe7e400fa9874227ee0abe4c6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/377824
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
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 aebe429..1789641 100644
--- a/pkg/front_end/lib/src/source/source_builder_factory.dart
+++ b/pkg/front_end/lib/src/source/source_builder_factory.dart
@@ -508,14 +508,11 @@
TypeParameterScopeBuilder declaration =
endNestedDeclaration(TypeParameterScopeKind.enumDeclaration, name)
..resolveNamedTypes(typeVariables, _problemReporting);
- Map<String, Builder> members = declaration.members!;
Map<String, MemberBuilder> constructors = declaration.constructors!;
- Map<String, MemberBuilder> setters = declaration.setters!;
LookupScope typeParameterScope =
TypeParameterScope.fromList(_scope, typeVariables);
- NameSpace enumNameSpace =
- new NameSpaceImpl(getables: members, setables: setters);
+ NameSpace enumNameSpace = declaration.toNameSpace();
SourceEnumBuilder enumBuilder = new SourceEnumBuilder(
metadata,
name,
@@ -579,9 +576,9 @@
setParent(member as MemberBuilder);
}
- members.forEach(setParentAndCheckConflicts);
+ enumNameSpace.forEachLocalMember(setParentAndCheckConflicts);
constructors.forEach(setParentAndCheckConflicts);
- setters.forEach(setParentAndCheckConflicts);
+ enumNameSpace.forEachLocalSetter(setParentAndCheckConflicts);
addBuilder(name, enumBuilder, charOffset,
getterReference: referencesFromIndexedClass?.cls.reference);
@@ -664,14 +661,11 @@
endNestedDeclaration(kind, className)
..resolveNamedTypes(typeVariables, _problemReporting);
assert(declaration.parent == _libraryTypeParameterScopeBuilder);
- Map<String, Builder> members = declaration.members!;
Map<String, MemberBuilder> constructors = declaration.constructors!;
- Map<String, MemberBuilder> setters = declaration.setters!;
LookupScope typeParameterScope =
TypeParameterScope.fromList(_scope, typeVariables);
- NameSpace classNameSpace =
- new NameSpaceImpl(getables: members, setables: setters);
+ NameSpace classNameSpace = declaration.toNameSpace();
// When looking up a constructor, we don't consider type variables or the
// library scope.
@@ -750,9 +744,9 @@
setParent(member as MemberBuilder);
}
- members.forEach(setParentAndCheckConflicts);
+ classNameSpace.forEachLocalMember(setParentAndCheckConflicts);
constructors.forEach(setParentAndCheckConflicts);
- setters.forEach(setParentAndCheckConflicts);
+ classNameSpace.forEachLocalSetter(setParentAndCheckConflicts);
addBuilder(className, classBuilder, nameOffset,
getterReference: _indexedContainer?.reference);
offsetMap.registerNamedDeclaration(identifier, classBuilder);
@@ -1150,14 +1144,11 @@
endNestedDeclaration(TypeParameterScopeKind.extensionDeclaration, name)
..resolveNamedTypes(typeVariables, _problemReporting);
assert(declaration.parent == _libraryTypeParameterScopeBuilder);
- Map<String, Builder> members = declaration.members!;
Map<String, MemberBuilder> constructors = declaration.constructors!;
- Map<String, MemberBuilder> setters = declaration.setters!;
LookupScope typeParameterScope =
TypeParameterScope.fromList(_scope, typeVariables);
- NameSpace extensionNameSpace =
- new NameSpaceImpl(getables: members, setables: setters);
+ NameSpace extensionNameSpace = declaration.toNameSpace();
Extension? referenceFrom;
ExtensionName extensionName = declaration.extensionName!;
@@ -1206,9 +1197,9 @@
setParent(member as MemberBuilder);
}
- members.forEach(setParentAndCheckConflicts);
+ extensionNameSpace.forEachLocalMember(setParentAndCheckConflicts);
constructors.forEach(setParentAndCheckConflicts);
- setters.forEach(setParentAndCheckConflicts);
+ extensionNameSpace.forEachLocalSetter(setParentAndCheckConflicts);
addBuilder(extensionBuilder.name, extensionBuilder, nameOffset,
getterReference: referenceFrom?.reference);
if (identifier != null) {
@@ -1234,14 +1225,11 @@
TypeParameterScopeKind.extensionTypeDeclaration, name)
..resolveNamedTypes(typeVariables, _problemReporting);
assert(declaration.parent == _libraryTypeParameterScopeBuilder);
- Map<String, Builder> members = declaration.members!;
Map<String, MemberBuilder> constructors = declaration.constructors!;
- Map<String, MemberBuilder> setters = declaration.setters!;
LookupScope typeParameterScope =
TypeParameterScope.fromList(_scope, typeVariables);
- NameSpace extensionTypeNameSpace =
- new NameSpaceImpl(getables: members, setables: setters);
+ NameSpace extensionTypeNameSpace = declaration.toNameSpace();
ConstructorScope constructorScope =
new ConstructorScope(name, constructors);
@@ -1250,7 +1238,7 @@
SourceFieldBuilder? representationFieldBuilder;
outer:
- for (Builder? member in members.values) {
+ for (Builder? member in extensionTypeNameSpace.localMembers) {
while (member != null) {
if (!member.isDuplicate &&
member is SourceFieldBuilder &&
@@ -1307,9 +1295,9 @@
setParent(member as MemberBuilder);
}
- members.forEach(setParentAndCheckConflicts);
+ extensionTypeNameSpace.forEachLocalMember(setParentAndCheckConflicts);
constructors.forEach(setParentAndCheckConflicts);
- setters.forEach(setParentAndCheckConflicts);
+ extensionTypeNameSpace.forEachLocalSetter(setParentAndCheckConflicts);
addBuilder(extensionTypeDeclarationBuilder.name,
extensionTypeDeclarationBuilder, identifier.nameOffset,
getterReference: indexedContainer?.reference);
diff --git a/pkg/front_end/test/coverage_suite_expected.dart b/pkg/front_end/test/coverage_suite_expected.dart
index a06310a..90dbd71 100644
--- a/pkg/front_end/test/coverage_suite_expected.dart
+++ b/pkg/front_end/test/coverage_suite_expected.dart
@@ -780,7 +780,7 @@
),
// 100.0%.
"package:front_end/src/source/source_builder_factory.dart": (
- hitCount: 1202,
+ hitCount: 1194,
missCount: 0,
),
// 98.13664596273291%.
@@ -834,9 +834,9 @@
hitCount: 296,
missCount: 0,
),
- // 99.85825655563431%.
+ // 99.85765124555161%.
"package:front_end/src/source/source_library_builder.dart": (
- hitCount: 1409,
+ hitCount: 1403,
missCount: 2,
),
// 99.89224137931035%.
@@ -904,9 +904,9 @@
hitCount: 7884,
missCount: 36,
),
- // 99.87525987525989%.
+ // 99.875%.
"package:front_end/src/type_inference/inference_visitor_base.dart": (
- hitCount: 2402,
+ hitCount: 2397,
missCount: 3,
),
// 100.0%.