[cfe] Remove BuilderFactoryImpl._currentTypeParameterScopeBuilder

TypeParameterScopeBuilder is now only used for libraries.

Change-Id: I14d69210f658659df55e8907ae7807547052eb4c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/383243
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
diff --git a/pkg/front_end/lib/src/source/builder_factory.dart b/pkg/front_end/lib/src/source/builder_factory.dart
index 438cc81..f87cb2e 100644
--- a/pkg/front_end/lib/src/source/builder_factory.dart
+++ b/pkg/front_end/lib/src/source/builder_factory.dart
@@ -85,7 +85,7 @@
 
   void beginClassBody();
 
-  TypeParameterScopeBuilder endClassDeclaration(String name);
+  void endClassDeclaration(String name);
 
   void endClassDeclarationForParserRecovery(
       List<NominalVariableBuilder>? typeVariables);
@@ -97,7 +97,7 @@
 
   void beginMixinBody();
 
-  TypeParameterScopeBuilder endMixinDeclaration(String name);
+  void endMixinDeclaration(String name);
 
   void endMixinDeclarationForParserRecovery(
       List<NominalVariableBuilder>? typeVariables);
@@ -135,7 +135,7 @@
 
   void beginExtensionBody(TypeBuilder? extensionThisType);
 
-  TypeParameterScopeBuilder endExtensionDeclaration(String? name);
+  void endExtensionDeclaration(String? name);
 
   /// Registers that this builder is preparing for an extension type declaration
   /// with the given [name] and [typeVariables] located [charOffset].
@@ -144,7 +144,7 @@
 
   void beginExtensionTypeBody();
 
-  TypeParameterScopeBuilder endExtensionTypeDeclaration(String name);
+  void endExtensionTypeDeclaration(String name);
 
   void beginFactoryMethod();
 
@@ -416,7 +416,7 @@
       AsyncMarker asyncModifier);
 
   String? computeAndValidateConstructorName(
-      TypeParameterScopeBuilder parentDeclaration, Identifier identifier,
+      DeclarationFragment enclosingDeclaration, Identifier identifier,
       {isFactory = false});
 
   void addProcedure(
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 9a79ba8..fe615aa 100644
--- a/pkg/front_end/lib/src/source/source_builder_factory.dart
+++ b/pkg/front_end/lib/src/source/source_builder_factory.dart
@@ -92,12 +92,6 @@
 
   final TypeParameterScopeBuilder _libraryTypeParameterScopeBuilder;
 
-  /// The current declaration that is being built. When we start parsing a
-  /// declaration (class, method, and so on), we don't have enough information
-  /// to create a builder and this object records its members and types until,
-  /// for example, [addClass] is called.
-  TypeParameterScopeBuilder _currentTypeParameterScopeBuilder;
-
   /// Index of the library we use references for.
   final IndexedLibrary? indexedLibrary;
 
@@ -172,7 +166,6 @@
       : _compilationUnit = compilationUnit,
         _augmentationRoot = augmentationRoot,
         _libraryTypeParameterScopeBuilder = libraryTypeParameterScopeBuilder,
-        _currentTypeParameterScopeBuilder = libraryTypeParameterScopeBuilder,
         _problemReporting = problemReporting,
         _parent = parent,
         _scope = scope,
@@ -191,11 +184,6 @@
 
   @override
   void beginClassOrNamedMixinApplicationHeader() {
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.createNested(
-            TypeParameterScopeKind.classOrNamedMixinApplication,
-            "class or mixin application");
-
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -209,7 +197,6 @@
   @override
   void beginClassDeclaration(String name, int charOffset,
       List<NominalVariableBuilder>? typeVariables) {
-    _currentTypeParameterScopeBuilder.markAsClassDeclaration(name, charOffset);
     _declarationFragments.push(new ClassFragment(
         name, charOffset, typeVariables, _typeScopes.current.lookupScope));
   }
@@ -221,22 +208,7 @@
   }
 
   @override
-  TypeParameterScopeBuilder endClassDeclaration(String name) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.classDeclaration;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    assert(
-        name.startsWith(_currentTypeParameterScopeBuilder.name),
-        // Coverage-ignore(suite): Not run.
-        "${name} != ${_currentTypeParameterScopeBuilder.name}");
-    TypeParameterScopeBuilder previous = _currentTypeParameterScopeBuilder;
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
+  void endClassDeclaration(String name) {
     TypeScope bodyScope = _typeScopes.pop();
     assert(
         bodyScope.kind == TypeScopeKind.classDeclaration,
@@ -247,23 +219,12 @@
         typeParameterScope.kind == TypeScopeKind.declarationTypeParameters,
         // Coverage-ignore(suite): Not run.
         "Unexpected type scope: $typeParameterScope.");
-
-    return previous;
   }
 
   @override
   // Coverage-ignore(suite): Not run.
   void endClassDeclarationForParserRecovery(
       List<NominalVariableBuilder>? typeVariables) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.classDeclaration;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
     TypeScope bodyScope = _typeScopes.pop();
     assert(bodyScope.kind == TypeScopeKind.classDeclaration,
         "Unexpected type scope: $bodyScope.");
@@ -280,7 +241,6 @@
   @override
   void beginMixinDeclaration(String name, int charOffset,
       List<NominalVariableBuilder>? typeVariables) {
-    _currentTypeParameterScopeBuilder.markAsMixinDeclaration(name, charOffset);
     _declarationFragments.push(new MixinFragment(
         name, charOffset, typeVariables, _typeScopes.current.lookupScope));
   }
@@ -292,22 +252,7 @@
   }
 
   @override
-  TypeParameterScopeBuilder endMixinDeclaration(String name) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.mixinDeclaration;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    assert(
-        name == _currentTypeParameterScopeBuilder.name,
-        // Coverage-ignore(suite): Not run.
-        "${name} != ${_currentTypeParameterScopeBuilder.name}");
-    TypeParameterScopeBuilder previous = _currentTypeParameterScopeBuilder;
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
+  void endMixinDeclaration(String name) {
     TypeScope bodyScope = _typeScopes.pop();
     assert(
         bodyScope.kind == TypeScopeKind.mixinDeclaration,
@@ -318,23 +263,12 @@
         typeParameterScope.kind == TypeScopeKind.declarationTypeParameters,
         // Coverage-ignore(suite): Not run.
         "Unexpected type scope: $typeParameterScope.");
-
-    return previous;
   }
 
   @override
   // Coverage-ignore(suite): Not run.
   void endMixinDeclarationForParserRecovery(
       List<NominalVariableBuilder>? typeVariables) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.mixinDeclaration;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
     TypeScope bodyScope = _typeScopes.pop();
     assert(bodyScope.kind == TypeScopeKind.mixinDeclaration,
         "Unexpected type scope: $bodyScope.");
@@ -350,27 +284,10 @@
 
   @override
   void beginNamedMixinApplication(String name, int charOffset,
-      List<NominalVariableBuilder>? typeVariables) {
-    _currentTypeParameterScopeBuilder.markAsNamedMixinApplication(
-        name, charOffset);
-  }
+      List<NominalVariableBuilder>? typeVariables) {}
 
   @override
   void endNamedMixinApplication(String name) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.namedMixinApplication;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    assert(
-        name == _currentTypeParameterScopeBuilder.name,
-        // Coverage-ignore(suite): Not run.
-        "${name} != ${_currentTypeParameterScopeBuilder.name}");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
     TypeScope typeParameterScope = _typeScopes.pop();
     assert(
         typeParameterScope.kind == TypeScopeKind.declarationTypeParameters,
@@ -381,16 +298,6 @@
   @override
   void endNamedMixinApplicationForParserRecovery(
       List<NominalVariableBuilder>? typeVariables) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.namedMixinApplication;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
     TypeScope typeParameterScope = _typeScopes.pop();
     assert(
         typeParameterScope.kind == TypeScopeKind.declarationTypeParameters,
@@ -404,8 +311,6 @@
 
   @override
   void beginEnumDeclarationHeader(String name) {
-    _currentTypeParameterScopeBuilder = _currentTypeParameterScopeBuilder
-        .createNested(TypeParameterScopeKind.enumDeclaration, name);
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -419,7 +324,6 @@
   @override
   void beginEnumDeclaration(String name, int charOffset,
       List<NominalVariableBuilder>? typeVariables) {
-    _currentTypeParameterScopeBuilder.markAsEnumDeclaration(name, charOffset);
     _declarationFragments.push(new EnumFragment(
         name, charOffset, typeVariables, _typeScopes.current.lookupScope));
   }
@@ -432,21 +336,6 @@
 
   @override
   void endEnumDeclaration(String name) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.enumDeclaration;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    assert(
-        name == _currentTypeParameterScopeBuilder.name,
-        // Coverage-ignore(suite): Not run.
-        "${name} != ${_currentTypeParameterScopeBuilder.name}");
-
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
     TypeScope bodyScope = _typeScopes.pop();
     assert(
         bodyScope.kind == TypeScopeKind.enumDeclaration,
@@ -462,16 +351,6 @@
   @override
   void endEnumDeclarationForParserRecovery(
       List<NominalVariableBuilder>? typeVariables) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.enumDeclaration;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
     TypeScope bodyScope = _typeScopes.pop();
     assert(
         bodyScope.kind == TypeScopeKind.enumDeclaration,
@@ -491,10 +370,6 @@
 
   @override
   void beginExtensionOrExtensionTypeHeader() {
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.createNested(
-            TypeParameterScopeKind.extensionOrExtensionTypeDeclaration,
-            "extension");
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -508,8 +383,6 @@
   @override
   void beginExtensionDeclaration(String? name, int charOffset,
       List<NominalVariableBuilder>? typeVariables) {
-    _currentTypeParameterScopeBuilder.markAsExtensionDeclaration(
-        name, charOffset);
     _declarationFragments.push(new ExtensionFragment(
         name, charOffset, typeVariables, _typeScopes.current.lookupScope));
   }
@@ -526,24 +399,7 @@
   }
 
   @override
-  TypeParameterScopeBuilder endExtensionDeclaration(String? name) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.extensionDeclaration;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    assert(
-        name == _currentTypeParameterScopeBuilder.name ||
-            _currentTypeParameterScopeBuilder.name ==
-                UnnamedExtensionName.unnamedExtensionSentinel,
-        // Coverage-ignore(suite): Not run.
-        "${name} != ${_currentTypeParameterScopeBuilder.name}");
-    TypeParameterScopeBuilder previous = _currentTypeParameterScopeBuilder;
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
+  void endExtensionDeclaration(String? name) {
     TypeScope bodyScope = _typeScopes.pop();
     assert(
         bodyScope.kind == TypeScopeKind.extensionDeclaration,
@@ -554,15 +410,11 @@
         typeParameterScope.kind == TypeScopeKind.declarationTypeParameters,
         // Coverage-ignore(suite): Not run.
         "Unexpected type scope: $typeParameterScope.");
-
-    return previous;
   }
 
   @override
   void beginExtensionTypeDeclaration(String name, int charOffset,
       List<NominalVariableBuilder>? typeVariables) {
-    _currentTypeParameterScopeBuilder.markAsExtensionTypeDeclaration(
-        name, charOffset);
     _declarationFragments.push(new ExtensionTypeFragment(
         name, charOffset, typeVariables, _typeScopes.current.lookupScope));
   }
@@ -574,23 +426,7 @@
   }
 
   @override
-  TypeParameterScopeBuilder endExtensionTypeDeclaration(String name) {
-    TypeParameterScopeKind kind =
-        TypeParameterScopeKind.extensionTypeDeclaration;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    assert(
-        name == _currentTypeParameterScopeBuilder.name,
-        // Coverage-ignore(suite): Not run.
-        "${name} != ${_currentTypeParameterScopeBuilder.name}");
-    TypeParameterScopeBuilder previous = _currentTypeParameterScopeBuilder;
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
-
+  void endExtensionTypeDeclaration(String name) {
     TypeScope bodyScope = _typeScopes.pop();
     assert(
         bodyScope.kind == TypeScopeKind.extensionTypeDeclaration,
@@ -601,14 +437,10 @@
         typeParameterScope.kind == TypeScopeKind.declarationTypeParameters,
         // Coverage-ignore(suite): Not run.
         "Unexpected type scope: $typeParameterScope.");
-
-    return previous;
   }
 
   @override
   void beginFactoryMethod() {
-    _currentTypeParameterScopeBuilder = _currentTypeParameterScopeBuilder
-        .createNested(TypeParameterScopeKind.factoryMethod, "#factory_method");
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -621,15 +453,6 @@
 
   @override
   void endFactoryMethod() {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.factoryMethod;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
@@ -640,14 +463,6 @@
   @override
   // Coverage-ignore(suite): Not run.
   void endFactoryMethodForParserRecovery() {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.factoryMethod;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
         "Unexpected type scope: $typeVariableScope.");
@@ -658,8 +473,6 @@
 
   @override
   void beginConstructor() {
-    _currentTypeParameterScopeBuilder = _currentTypeParameterScopeBuilder
-        .createNested(TypeParameterScopeKind.constructor, "#method");
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -672,15 +485,6 @@
 
   @override
   void endConstructor() {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.constructor;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
@@ -691,15 +495,6 @@
   @override
   void endConstructorForParserRecovery(
       List<NominalVariableBuilder>? typeVariables) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.constructor;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
@@ -713,8 +508,6 @@
 
   @override
   void beginStaticMethod() {
-    _currentTypeParameterScopeBuilder = _currentTypeParameterScopeBuilder
-        .createNested(TypeParameterScopeKind.staticMethod, "#method");
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -727,15 +520,6 @@
 
   @override
   void endStaticMethod() {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.staticMethod;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
@@ -747,14 +531,6 @@
   // Coverage-ignore(suite): Not run.
   void endStaticMethodForParserRecovery(
       List<NominalVariableBuilder>? typeVariables) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.staticMethod;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
         "Unexpected type scope: $typeVariableScope.");
@@ -766,8 +542,6 @@
 
   @override
   void beginInstanceMethod() {
-    _currentTypeParameterScopeBuilder = _currentTypeParameterScopeBuilder
-        .createNested(TypeParameterScopeKind.instanceMethod, "#method");
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -780,15 +554,6 @@
 
   @override
   void endInstanceMethod() {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.instanceMethod;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
@@ -799,15 +564,6 @@
   @override
   void endInstanceMethodForParserRecovery(
       List<NominalVariableBuilder>? typeVariables) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.instanceMethod;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
@@ -821,8 +577,6 @@
 
   @override
   void beginTopLevelMethod() {
-    _currentTypeParameterScopeBuilder = _currentTypeParameterScopeBuilder
-        .createNested(TypeParameterScopeKind.topLevelMethod, "#method");
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -835,15 +589,6 @@
 
   @override
   void endTopLevelMethod() {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.topLevelMethod;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
@@ -854,15 +599,6 @@
   @override
   void endTopLevelMethodForParserRecovery(
       List<NominalVariableBuilder>? typeVariables) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.topLevelMethod;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.memberTypeParameters,
@@ -876,8 +612,6 @@
 
   @override
   void beginTypedef() {
-    _currentTypeParameterScopeBuilder = _currentTypeParameterScopeBuilder
-        .createNested(TypeParameterScopeKind.typedef, "#typedef");
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -890,15 +624,6 @@
 
   @override
   void endTypedef() {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.typedef;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.declarationTypeParameters,
@@ -910,14 +635,6 @@
   // Coverage-ignore(suite): Not run.
   void endTypedefForParserRecovery(
       List<NominalVariableBuilder>? typeVariables) {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.typedef;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(typeVariableScope.kind == TypeScopeKind.declarationTypeParameters,
         "Unexpected type scope: $typeVariableScope.");
@@ -929,8 +646,6 @@
 
   @override
   void beginFunctionType() {
-    _currentTypeParameterScopeBuilder = _currentTypeParameterScopeBuilder
-        .createNested(TypeParameterScopeKind.functionType, "#function_type");
     Map<String, StructuralVariableBuilder> structuralParameterScope = {};
     _structuralParameterScopes.push(structuralParameterScope);
     _typeScopes.push(new TypeScope(
@@ -942,15 +657,6 @@
 
   @override
   void endFunctionType() {
-    TypeParameterScopeKind kind = TypeParameterScopeKind.functionType;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.functionTypeParameters,
@@ -959,10 +665,6 @@
   }
 
   void beginUnnamedMixinApplication() {
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.createNested(
-            TypeParameterScopeKind.unnamedMixinApplication,
-            "mixin application");
     NominalParameterNameSpace nominalParameterNameSpace =
         new NominalParameterNameSpace();
     _nominalParameterNameSpaces.push(nominalParameterNameSpace);
@@ -974,16 +676,6 @@
   }
 
   void endUnnamedMixinApplication() {
-    TypeParameterScopeKind kind =
-        TypeParameterScopeKind.unnamedMixinApplication;
-    assert(
-        _currentTypeParameterScopeBuilder.kind == kind,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration. "
-        "Trying to end a ${_currentTypeParameterScopeBuilder.kind} as a "
-        "$kind.");
-    _currentTypeParameterScopeBuilder =
-        _currentTypeParameterScopeBuilder.parent!;
     TypeScope typeVariableScope = _typeScopes.pop();
     assert(
         typeVariableScope.kind == TypeScopeKind.unnamedMixinApplication,
@@ -1424,13 +1116,11 @@
       required bool isMixinClass}) {
     String className = identifier.name;
     // Nested declaration began in `OutlineBuilder.beginClassDeclaration`.
-    TypeParameterScopeBuilder declaration;
     if (isMixinDeclaration) {
-      declaration = endMixinDeclaration(className);
+      endMixinDeclaration(className);
     } else {
-      declaration = endClassDeclaration(className);
+      endClassDeclaration(className);
     }
-    assert(declaration.parent == _libraryTypeParameterScopeBuilder);
 
     DeclarationFragment declarationFragment = _declarationFragments.pop();
 
@@ -1812,12 +1502,11 @@
     String? name = identifier?.name;
     // Nested declaration began in
     // `OutlineBuilder.beginExtensionDeclarationPrelude`.
-    TypeParameterScopeBuilder declaration = endExtensionDeclaration(name);
+    endExtensionDeclaration(name);
 
     ExtensionFragment declarationFragment =
         _declarationFragments.pop() as ExtensionFragment;
 
-    assert(declaration.parent == _libraryTypeParameterScopeBuilder);
     NominalParameterNameSpace nominalParameterNameSpace =
         _nominalParameterNameSpaces.pop();
     nominalParameterNameSpace.addTypeVariables(_problemReporting, typeVariables,
@@ -1870,8 +1559,7 @@
       int endOffset) {
     String name = identifier.name;
     // Nested declaration began in `OutlineBuilder.beginExtensionDeclaration`.
-    TypeParameterScopeBuilder declaration = endExtensionTypeDeclaration(name);
-    assert(declaration.parent == _libraryTypeParameterScopeBuilder);
+    endExtensionTypeDeclaration(name);
 
     DeclarationFragment declarationFragment = _declarationFragments.pop();
 
@@ -1899,7 +1587,7 @@
         new SourceExtensionTypeDeclarationBuilder(
             metadata,
             modifiers,
-            declaration.name,
+            declarationFragment.name,
             typeVariables,
             interfaces,
             typeParameterScope,
@@ -2100,9 +1788,9 @@
     }
 
     if (isConstructor) {
-      String constructorName = computeAndValidateConstructorName(
-              _currentTypeParameterScopeBuilder, identifier) ??
-          name;
+      String constructorName =
+          computeAndValidateConstructorName(declarationFragment, identifier) ??
+              name;
       addConstructor(
           offsetMap,
           metadata,
@@ -2270,8 +1958,8 @@
     }
     AbstractSourceConstructorBuilder constructorBuilder;
 
-    if (_currentTypeParameterScopeBuilder.kind ==
-        TypeParameterScopeKind.extensionTypeDeclaration) {
+    if (_declarationFragments.current.kind ==
+        DeclarationFragmentKind.extensionTypeDeclaration) {
       constructorBuilder = new SourceExtensionTypeConstructorBuilder(
           metadata,
           modifiers & ~abstractMask,
@@ -2348,19 +2036,19 @@
       AsyncMarker asyncModifier) {
     TypeBuilder returnType;
     List<TypeBuilder>? returnTypeArguments;
-    TypeParameterScopeBuilder? parentDeclaration =
-        _currentTypeParameterScopeBuilder.parent!;
-    if (parentDeclaration.kind == TypeParameterScopeKind.extensionDeclaration) {
+    DeclarationFragment enclosingDeclaration = _declarationFragments.current;
+    if (enclosingDeclaration.kind ==
+        DeclarationFragmentKind.extensionDeclaration) {
       // Make the synthesized return type invalid for extensions.
-      String name = _currentTypeParameterScopeBuilder.parent!.name;
+      String name = enclosingDeclaration.name;
       returnType = new NamedTypeBuilderImpl.forInvalidType(
-          _currentTypeParameterScopeBuilder.parent!.name,
+          name,
           const NullabilityBuilder.omitted(),
           messageExtensionDeclaresConstructor.withLocation(
               _compilationUnit.fileUri, charOffset, name.length));
     } else {
       returnType = addNamedType(
-          new SyntheticTypeName(parentDeclaration.name, charOffset),
+          new SyntheticTypeName(enclosingDeclaration.name, charOffset),
           const NullabilityBuilder.omitted(),
           returnTypeArguments = [],
           charOffset,
@@ -2370,7 +2058,7 @@
     // Prepare the simple procedure name.
     String procedureName;
     String? constructorName = computeAndValidateConstructorName(
-        parentDeclaration, identifier,
+        enclosingDeclaration, identifier,
         isFactory: true);
     if (constructorName != null) {
       procedureName = constructorName;
@@ -2378,7 +2066,6 @@
       procedureName = identifier.name;
     }
 
-    DeclarationFragment enclosingDeclaration = _declarationFragments.current;
     ContainerType containerType = enclosingDeclaration.containerType;
     ContainerName containerName = enclosingDeclaration.containerName;
 
@@ -2509,13 +2196,13 @@
       List<TypeBuilder>? typeArguments, Identifier? suffix, int charOffset) {
     // At the moment, the name of the type in a constructor reference can be
     // omitted only within an enum element declaration.
-    if (_currentTypeParameterScopeBuilder.kind ==
-        TypeParameterScopeKind.enumDeclaration) {
+    DeclarationFragment enclosingDeclaration = _declarationFragments.current;
+    if (enclosingDeclaration.kind == DeclarationFragmentKind.enumDeclaration) {
       if (libraryFeatures.enhancedEnums.isEnabled) {
         int constructorNameOffset = suffix?.nameOffset ?? charOffset;
         return addConstructorReference(
             new SyntheticTypeName(
-                _currentTypeParameterScopeBuilder.name, constructorNameOffset),
+                enclosingDeclaration.name, constructorNameOffset),
             typeArguments,
             suffix?.name,
             constructorNameOffset);
@@ -2542,9 +2229,9 @@
 
   @override
   String? computeAndValidateConstructorName(
-      TypeParameterScopeBuilder parentDeclaration, Identifier identifier,
+      DeclarationFragment enclosingDeclaration, Identifier identifier,
       {isFactory = false}) {
-    String className = parentDeclaration.name;
+    String className = enclosingDeclaration.name;
     String prefix;
     String? suffix;
     int charOffset;
@@ -2573,9 +2260,11 @@
         prefix.length, _compilationUnit.fileUri,
         context: [
           templateConstructorWithWrongNameContext
-              .withArguments(parentDeclaration.name)
-              .withLocation(_compilationUnit.importUri,
-                  parentDeclaration.charOffset, parentDeclaration.name.length)
+              .withArguments(enclosingDeclaration.name)
+              .withLocation(
+                  _compilationUnit.importUri,
+                  enclosingDeclaration.nameOffset,
+                  enclosingDeclaration.name.length)
         ]);
 
     return suffix;
@@ -2605,14 +2294,14 @@
       {required bool isInstanceMember,
       required bool isExtensionMember,
       required bool isExtensionTypeMember}) {
-    assert(!isExtensionMember ||
-        _currentTypeParameterScopeBuilder.kind ==
-            TypeParameterScopeKind.extensionDeclaration);
-    assert(!isExtensionTypeMember ||
-        _currentTypeParameterScopeBuilder.kind ==
-            TypeParameterScopeKind.extensionTypeDeclaration);
     DeclarationFragment? enclosingDeclaration =
         _declarationFragments.currentOrNull;
+    assert(!isExtensionMember ||
+        enclosingDeclaration?.kind ==
+            DeclarationFragmentKind.extensionDeclaration);
+    assert(!isExtensionTypeMember ||
+        enclosingDeclaration?.kind ==
+            DeclarationFragmentKind.extensionTypeDeclaration);
     ContainerType containerType =
         enclosingDeclaration?.containerType ?? ContainerType.Library;
     ContainerName? containerName = enclosingDeclaration?.containerName;
@@ -2757,15 +2446,13 @@
             (loader.target.backendTarget.useStaticFieldLowering &&
                 (isStatic || isTopLevel)));
 
-    final bool isInstanceMember = _currentTypeParameterScopeBuilder.kind !=
-            TypeParameterScopeKind.library &&
-        (modifiers & staticMask) == 0;
-    final bool isExtensionMember = _currentTypeParameterScopeBuilder.kind ==
-        TypeParameterScopeKind.extensionDeclaration;
-    final bool isExtensionTypeMember = _currentTypeParameterScopeBuilder.kind ==
-        TypeParameterScopeKind.extensionTypeDeclaration;
     DeclarationFragment? enclosingDeclaration =
         _declarationFragments.currentOrNull;
+    final bool isInstanceMember = enclosingDeclaration != null && !isStatic;
+    final bool isExtensionMember = enclosingDeclaration?.kind ==
+        DeclarationFragmentKind.extensionDeclaration;
+    final bool isExtensionTypeMember = enclosingDeclaration?.kind ==
+        DeclarationFragmentKind.extensionTypeDeclaration;
     ContainerType containerType =
         enclosingDeclaration?.containerType ?? ContainerType.Library;
     ContainerName? containerName = enclosingDeclaration?.containerName;
@@ -3128,8 +2815,7 @@
   }
 
   void _addBuilder(String name, Builder declaration, int charOffset) {
-    if (_currentTypeParameterScopeBuilder ==
-        _libraryTypeParameterScopeBuilder) {
+    if (_declarationFragments.isEmpty) {
       _addBuilderToLibrary(name, declaration, charOffset);
     } else {
       _addBuilderToDeclaration(name, declaration, charOffset);
@@ -3138,12 +2824,11 @@
 
   Builder _addBuilderToLibrary(
       String name, Builder declaration, int charOffset) {
-    assert(
-        _currentTypeParameterScopeBuilder == _libraryTypeParameterScopeBuilder);
+    assert(_declarationFragments.isEmpty);
     if (declaration is SourceExtensionBuilder &&
         declaration.isUnnamedExtension) {
       declaration.parent = _parent;
-      _currentTypeParameterScopeBuilder.extensions!.add(declaration);
+      _libraryTypeParameterScopeBuilder.extensions.add(declaration);
       return declaration;
     }
 
@@ -3165,8 +2850,8 @@
         "Unexpected constructor in library: $declaration.");
 
     Map<String, Builder> members = declaration.isSetter
-        ? _currentTypeParameterScopeBuilder.setters!
-        : _currentTypeParameterScopeBuilder.members!;
+        ? _libraryTypeParameterScopeBuilder.setters
+        : _libraryTypeParameterScopeBuilder.members;
 
     Builder? existing = members[name];
 
@@ -3225,15 +2910,15 @@
       // We add the extension declaration to the extension scope only if its
       // name is unique. Only the first of duplicate extensions is accessible
       // by name or by resolution and the remaining are dropped for the output.
-      _currentTypeParameterScopeBuilder.extensions!
+      _libraryTypeParameterScopeBuilder.extensions
           .add(declaration as SourceExtensionBuilder);
     } else if (declaration.isAugment) {
       if (existing != null) {
         if (declaration.isSetter) {
-          (_currentTypeParameterScopeBuilder.setterAugmentations[name] ??= [])
+          (_libraryTypeParameterScopeBuilder.setterAugmentations[name] ??= [])
               .add(declaration);
         } else {
-          (_currentTypeParameterScopeBuilder.augmentations[name] ??= [])
+          (_libraryTypeParameterScopeBuilder.augmentations[name] ??= [])
               .add(declaration);
         }
       } else {
@@ -3248,9 +2933,7 @@
 
   void _addBuilderToDeclaration(
       String name, Builder declaration, int charOffset) {
-    assert(_currentTypeParameterScopeBuilder.parent ==
-        _libraryTypeParameterScopeBuilder);
-
+    assert(_declarationFragments.hasCurrent);
     _declarationFragments.current
         .addBuilder(name, declaration, _compilationUnit.fileUri, charOffset);
   }
@@ -3291,15 +2974,15 @@
 
   @override
   Iterable<Builder> get members =>
-      _libraryTypeParameterScopeBuilder.members!.values;
+      _libraryTypeParameterScopeBuilder.members.values;
 
   @override
   Iterable<Builder> get setters =>
-      _libraryTypeParameterScopeBuilder.setters!.values;
+      _libraryTypeParameterScopeBuilder.setters.values;
 
   @override
   Iterable<ExtensionBuilder> get extensions =>
-      _libraryTypeParameterScopeBuilder.extensions!;
+      _libraryTypeParameterScopeBuilder.extensions;
 
   @override
   bool get isPart => _partOfName != null || _partOfUri != null;
diff --git a/pkg/front_end/lib/src/source/source_library_builder.dart b/pkg/front_end/lib/src/source/source_library_builder.dart
index b8f77b7..268a0e2 100644
--- a/pkg/front_end/lib/src/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/source/source_library_builder.dart
@@ -220,7 +220,7 @@
           ..setLanguageVersion(packageLanguageVersion.version));
     LibraryName libraryName = new LibraryName(library.reference);
     TypeParameterScopeBuilder libraryTypeParameterScopeBuilder =
-        new TypeParameterScopeBuilder.library();
+        new TypeParameterScopeBuilder();
     NameSpace? importNameSpace = new NameSpaceImpl();
     LookupScope importScope = new NameSpaceLookupScope(
         importNameSpace, ScopeKind.library, 'top',
@@ -300,7 +300,7 @@
         "Package uri '$_packageUri' set on dart: library with import uri "
         "'${importUri}'.");
     _scope = new SourceLibraryBuilderScope(
-        this, ScopeKind.typeParameters, libraryTypeParameterScopeBuilder.name);
+        this, ScopeKind.typeParameters, 'library');
     compilationUnit = new SourceCompilationUnitImpl(
         this, libraryTypeParameterScopeBuilder,
         importUri: importUri,
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 96b088a..3bd4e8a 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
@@ -14,172 +14,21 @@
 import 'name_scheme.dart';
 import 'source_field_builder.dart';
 
-// The kind of type parameter scope built by a [TypeParameterScopeBuilder]
-// object.
-enum TypeParameterScopeKind {
-  library,
-  classOrNamedMixinApplication,
-  classDeclaration,
-  mixinDeclaration,
-  unnamedMixinApplication,
-  namedMixinApplication,
-  extensionOrExtensionTypeDeclaration,
-  extensionDeclaration,
-  extensionTypeDeclaration,
-  typedef,
-  staticMethod,
-  instanceMethod,
-  constructor,
-  topLevelMethod,
-  factoryMethod,
-  functionType,
-  enumDeclaration,
-}
-
 /// A builder object preparing for building declarations that can introduce type
 /// parameter and/or members.
 ///
 /// Unlike [Scope], this scope is used during construction of builders to
 /// ensure types and members are added to and resolved in the correct location.
 class TypeParameterScopeBuilder {
-  TypeParameterScopeKind _kind;
+  final Map<String, Builder> members = {};
 
-  final TypeParameterScopeBuilder? parent;
+  final Map<String, MemberBuilder> setters = {};
 
-  final Map<String, Builder>? members;
+  final Set<ExtensionBuilder> extensions = {};
 
-  final Map<String, MemberBuilder>? setters;
+  final Map<String, List<Builder>> augmentations = {};
 
-  final Set<ExtensionBuilder>? extensions;
-
-  final Map<String, List<Builder>> augmentations = <String, List<Builder>>{};
-
-  final Map<String, List<Builder>> setterAugmentations =
-      <String, List<Builder>>{};
-
-  // TODO(johnniwinther): Stop using [_name] for determining the declaration
-  // kind.
-  String _name;
-
-  /// Offset of name token, updated by the outline builder along
-  /// with the name as the current declaration changes.
-  int _charOffset;
-
-  TypeParameterScopeBuilder(this._kind, this.members, this.setters,
-      this.extensions, this._name, this._charOffset, this.parent);
-
-  TypeParameterScopeBuilder.library()
-      : this(
-            TypeParameterScopeKind.library,
-            <String, Builder>{},
-            <String, MemberBuilder>{},
-            <ExtensionBuilder>{},
-            "<library>",
-            -1,
-            null);
-
-  TypeParameterScopeBuilder createNested(
-      TypeParameterScopeKind kind, String name) {
-    return new TypeParameterScopeBuilder(
-        kind,
-        null,
-        null,
-        null,
-        // No support for extensions in nested scopes.
-        name,
-        -1,
-        this);
-  }
-
-  /// Registers that this builder is preparing for a class declaration with the
-  /// given [name] and [typeVariables] located [charOffset].
-  void markAsClassDeclaration(String name, int charOffset) {
-    assert(
-        _kind == TypeParameterScopeKind.classOrNamedMixinApplication,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration kind: $_kind");
-    _kind = TypeParameterScopeKind.classDeclaration;
-    _name = name;
-    _charOffset = charOffset;
-  }
-
-  /// Registers that this builder is preparing for a named mixin application
-  /// with the given [name] and [typeVariables] located [charOffset].
-  void markAsNamedMixinApplication(String name, int charOffset) {
-    assert(
-        _kind == TypeParameterScopeKind.classOrNamedMixinApplication,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration kind: $_kind");
-    _kind = TypeParameterScopeKind.namedMixinApplication;
-    _name = name;
-    _charOffset = charOffset;
-  }
-
-  /// Registers that this builder is preparing for a mixin declaration with the
-  /// given [name] and [typeVariables] located [charOffset].
-  void markAsMixinDeclaration(String name, int charOffset) {
-    // TODO(johnniwinther): Avoid using 'classOrNamedMixinApplication' for mixin
-    // declaration. These are syntactically distinct so we don't need the
-    // transition.
-    assert(
-        _kind == TypeParameterScopeKind.classOrNamedMixinApplication,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration kind: $_kind");
-    _kind = TypeParameterScopeKind.mixinDeclaration;
-    _name = name;
-    _charOffset = charOffset;
-  }
-
-  /// Registers that this builder is preparing for an extension declaration with
-  /// the given [name] and [typeVariables] located [charOffset].
-  void markAsExtensionDeclaration(String? name, int charOffset) {
-    assert(
-        _kind == TypeParameterScopeKind.extensionOrExtensionTypeDeclaration,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration kind: $_kind");
-    _kind = TypeParameterScopeKind.extensionDeclaration;
-    _name = name ?? UnnamedExtensionName.unnamedExtensionSentinel;
-    _charOffset = charOffset;
-  }
-
-  /// Registers that this builder is preparing for an extension type declaration
-  /// with the given [name] and [typeVariables] located [charOffset].
-  void markAsExtensionTypeDeclaration(String name, int charOffset) {
-    assert(
-        _kind == TypeParameterScopeKind.extensionOrExtensionTypeDeclaration,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration kind: $_kind");
-    _kind = TypeParameterScopeKind.extensionTypeDeclaration;
-    _name = name;
-    _charOffset = charOffset;
-  }
-
-  /// Registers that this builder is preparing for an enum declaration with
-  /// the given [name] and [typeVariables] located [charOffset].
-  void markAsEnumDeclaration(String name, int charOffset) {
-    assert(
-        _kind == TypeParameterScopeKind.enumDeclaration,
-        // Coverage-ignore(suite): Not run.
-        "Unexpected declaration kind: $_kind");
-    _name = name;
-    _charOffset = charOffset;
-  }
-
-  /// Returns what kind of declaration this [TypeParameterScopeBuilder] is
-  /// preparing for.
-  ///
-  /// This information is transient for some declarations. In particular
-  /// classes and named mixin applications are initially created with the kind
-  /// [TypeParameterScopeKind.classOrNamedMixinApplication] before a call to
-  /// either [markAsClassDeclaration] or [markAsNamedMixinApplication] sets the
-  /// value to its actual kind.
-  // TODO(johnniwinther): Avoid the transition currently used on mixin
-  // declarations.
-  TypeParameterScopeKind get kind => _kind;
-
-  String get name => _name;
-
-  int get charOffset => _charOffset;
+  final Map<String, List<Builder>> setterAugmentations = {};
 
   NameSpace toNameSpace() {
     return new NameSpaceImpl(
@@ -187,7 +36,7 @@
   }
 
   @override
-  String toString() => 'DeclarationBuilder(${hashCode}:kind=$kind,name=$name)';
+  String toString() => 'TypeParameterScopeBuilder(${hashCode})';
 }
 
 class NominalParameterScope extends AbstractTypeParameterScope {