[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%.