Elements. Deprecate InterfaceElement.constructors2, use constructors.

Change-Id: I78faea1fdbc55e46cdb7fc0b187d12561736cec2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/429822
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/cider/local_library_contributor.dart b/pkg/analysis_server/lib/src/cider/local_library_contributor.dart
index 00b9f86..c209484 100644
--- a/pkg/analysis_server/lib/src/cider/local_library_contributor.dart
+++ b/pkg/analysis_server/lib/src/cider/local_library_contributor.dart
@@ -193,7 +193,7 @@
       return;
     }
 
-    for (var constructor in element.constructors2) {
+    for (var constructor in element.constructors) {
       if (constructor.isPrivate) {
         continue;
       }
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart b/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart
index 0f98a10..1e149ab 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart
@@ -162,7 +162,7 @@
 
   /// Add suggestions for all constructors of [element].
   void addConstructorNamesForElement({required InterfaceElement element}) {
-    var constructors = element.constructors2;
+    var constructors = element.constructors;
     for (var constructor in constructors) {
       _suggestConstructor(
         constructor,
@@ -610,7 +610,7 @@
     var typeSystem = library.typeSystem;
     for (var classElement in library.classes) {
       if (typeSystem.isSubtypeOf(classElement.thisType, classType)) {
-        for (var constructor in classElement.constructors2) {
+        for (var constructor in classElement.constructors) {
           if (constructor != redirectingConstructor &&
               constructor.isAccessibleIn2(library)) {
             _suggestConstructor(
@@ -638,7 +638,7 @@
         _addStaticMembers(
           getters: element.getters,
           setters: element.setters,
-          constructors: element.constructors2,
+          constructors: element.constructors,
           containingElement: element,
           fields: element.fields,
           methods: element.methods,
@@ -656,7 +656,7 @@
         _addStaticMembers(
           getters: element.getters,
           setters: element.setters,
-          constructors: element.constructors2,
+          constructors: element.constructors,
           containingElement: element,
           fields: element.fields,
           methods: element.methods,
@@ -669,16 +669,16 @@
   void _addConstructors(LibraryElement library, ImportData importData) {
     for (var element in library.classes) {
       _suggestConstructors(
-        element.constructors2,
+        element.constructors,
         importData,
         allowNonFactory: !element.isAbstract,
       );
     }
     for (var element in library.enums) {
-      _suggestConstructors(element.constructors2, importData);
+      _suggestConstructors(element.constructors, importData);
     }
     for (var element in library.extensionTypes) {
-      _suggestConstructors(element.constructors2, importData);
+      _suggestConstructors(element.constructors, importData);
     }
     for (var element in library.typeAliases) {
       _addConstructorsForAliasedElement(element, importData);
@@ -694,14 +694,14 @@
     var aliasedElement = alias.aliasedElement2;
     if (aliasedElement is ClassElement) {
       _suggestConstructors(
-        aliasedElement.constructors2,
+        aliasedElement.constructors,
         importData,
         allowNonFactory: !aliasedElement.isAbstract,
       );
     } else if (aliasedElement is ExtensionTypeElement) {
-      _suggestConstructors(aliasedElement.constructors2, importData);
+      _suggestConstructors(aliasedElement.constructors, importData);
     } else if (aliasedElement is MixinElement) {
-      _suggestConstructors(aliasedElement.constructors2, importData);
+      _suggestConstructors(aliasedElement.constructors, importData);
     }
   }
 
@@ -721,12 +721,12 @@
       switch (element) {
         case ClassElement():
           _suggestConstructors(
-            element.constructors2,
+            element.constructors,
             importData,
             allowNonFactory: !element.isAbstract,
           );
         case ExtensionTypeElement():
-          _suggestConstructors(element.constructors2, importData);
+          _suggestConstructors(element.constructors, importData);
         case TypeAliasElement():
           _addConstructorsForAliasedElement(element, importData);
       }
@@ -1694,7 +1694,7 @@
       if (!mustBeType) {
         _suggestStaticFields(element.fields, importData);
         _suggestConstructors(
-          element.constructors2,
+          element.constructors,
           importData,
           allowNonFactory: !element.isAbstract,
         );
@@ -1799,7 +1799,7 @@
       if (!mustBeType) {
         _suggestStaticFields(element.fields, importData);
         _suggestConstructors(
-          element.constructors2,
+          element.constructors,
           importData,
           allowNonFactory: false,
         );
@@ -1852,7 +1852,7 @@
       }
       if (!mustBeType) {
         _suggestStaticFields(element.fields, importData);
-        _suggestConstructors(element.constructors2, importData);
+        _suggestConstructors(element.constructors, importData);
       }
     }
   }
diff --git a/pkg/analysis_server/lib/src/services/flutter/property.dart b/pkg/analysis_server/lib/src/services/flutter/property.dart
index 882052a..1f5046a 100644
--- a/pkg/analysis_server/lib/src/services/flutter/property.dart
+++ b/pkg/analysis_server/lib/src/services/flutter/property.dart
@@ -486,7 +486,7 @@
       }
     }
 
-    onlyConstructor = classEdgeInsets.constructors2.firstWhereOrNull(
+    onlyConstructor = classEdgeInsets.constructors.firstWhereOrNull(
       (e) => e.name3 == 'only',
     );
 
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart
index ccbd20a..3371473 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart
@@ -106,7 +106,7 @@
         if (!newName.startsWith('_')) {
           var interfaceElement = renameElement.enclosingElement;
           if (interfaceElement is InterfaceElement) {
-            for (var constructor in interfaceElement.constructors2) {
+            for (var constructor in interfaceElement.constructors) {
               for (var parameter in constructor.formalParameters) {
                 if (parameter is FieldFormalParameterElement &&
                     parameter.field2 == renameElement) {
diff --git a/pkg/analysis_server/lib/src/services/search/hierarchy.dart b/pkg/analysis_server/lib/src/services/search/hierarchy.dart
index 03bd4bd..0266288 100644
--- a/pkg/analysis_server/lib/src/services/search/hierarchy.dart
+++ b/pkg/analysis_server/lib/src/services/search/hierarchy.dart
@@ -171,7 +171,7 @@
       }
 
       if (includeParametersForFields && member2 is FieldElement) {
-        for (var constructor in subClass.constructors2) {
+        for (var constructor in subClass.constructors) {
           for (var parameter in constructor.formalParameters) {
             if (parameter is FieldFormalParameterElement &&
                 parameter.field2 == member2) {
diff --git a/pkg/analysis_server/test/services/search/hierarchy_test.dart b/pkg/analysis_server/test/services/search/hierarchy_test.dart
index ec1b1ab..d3f23a9 100644
--- a/pkg/analysis_server/test/services/search/hierarchy_test.dart
+++ b/pkg/analysis_server/test/services/search/hierarchy_test.dart
@@ -38,8 +38,8 @@
 ''');
     var classA = findElement2.class_('A');
     var classB = findElement2.class_('B');
-    var memberA = classA.constructors2[0];
-    var memberB = classB.constructors2[0];
+    var memberA = classA.constructors[0];
+    var memberB = classB.constructors[0];
     var futureA = getHierarchyMembers(searchEngine, memberA).then((members) {
       expect(members, unorderedEquals([memberA]));
     });
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index dc56bd2..ce8c6d3 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -29,6 +29,8 @@
 * Deprecate `InstanceElement.getMethod2`, use `getMethod` instead.
 * Deprecate `InstanceFragment.fields2`, use `fields` instead.
 * Deprecate `InstanceFragment.methods2`, use `methods` instead.
+* Deprecate `InterfaceElement.constructors2`, use `constructors` instead.
+* Deprecate `InterfaceFragment.constructors2`, use `constructors` instead.
 
 ## 7.4.1
 * Restore `InstanceElement.augmented` getter.
diff --git a/pkg/analyzer/api.txt b/pkg/analyzer/api.txt
index 88cf523..eb78962 100644
--- a/pkg/analyzer/api.txt
+++ b/pkg/analyzer/api.txt
@@ -3405,7 +3405,8 @@
   InterfaceElement (class extends Object implements InstanceElement):
     new (constructor: InterfaceElement Function())
     allSupertypes (getter: List<InterfaceType>)
-    constructors2 (getter: List<ConstructorElement>)
+    constructors (getter: List<ConstructorElement>)
+    constructors2 (getter: List<ConstructorElement>, deprecated)
     firstFragment (getter: InterfaceFragment)
     fragments (getter: List<InterfaceFragment>)
     inheritedConcreteMembers (getter: Map<Name, ExecutableElement>)
@@ -3426,7 +3427,8 @@
     lookUpInheritedMethod2 (method: MethodElement? Function({required LibraryElement library, required String methodName}))
   InterfaceFragment (class extends Object implements InstanceFragment):
     new (constructor: InterfaceFragment Function())
-    constructors2 (getter: List<ConstructorFragment>)
+    constructors (getter: List<ConstructorFragment>)
+    constructors2 (getter: List<ConstructorFragment>, deprecated)
     element (getter: InterfaceElement)
     interfaces (getter: List<InterfaceType>)
     mixins (getter: List<InterfaceType>)
diff --git a/pkg/analyzer/doc/tutorial/element.md b/pkg/analyzer/doc/tutorial/element.md
index eeb9157..f6b4747 100644
--- a/pkg/analyzer/doc/tutorial/element.md
+++ b/pkg/analyzer/doc/tutorial/element.md
@@ -73,7 +73,7 @@
 void printMembers(LibraryElement libraryElement) {
   for (ClassElement classElement in libraryElement.classes) {
     print(classElement.name3);
-    for (ConstructorElement constructorElement in classElement.constructors2) {
+    for (ConstructorElement constructorElement in classElement.constructors) {
       if (!constructorElement.isSynthetic) {
         print('  ${constructorElement.displayName}');
       }
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index e3dd6a4..c1614eb 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -1986,6 +1986,12 @@
   /// The constructors defined for this element.
   ///
   /// The list is empty for [MixinElement].
+  List<ConstructorElement> get constructors;
+
+  /// The constructors defined for this element.
+  ///
+  /// The list is empty for [MixinElement].
+  @Deprecated('Use constructors instead')
   List<ConstructorElement> get constructors2;
 
   @override
@@ -2123,7 +2129,7 @@
   /// since it does not need to consider all possible interface names.
   ExecutableElement? getInterfaceMember(Name name);
 
-  /// Returns the constructor from [constructors2] that has the given [name].
+  /// Returns the constructor from [constructors] that has the given [name].
   ConstructorElement? getNamedConstructor2(String name);
 
   /// Returns all members of mixins, superclasses, and interfaces that a member
@@ -2202,6 +2208,12 @@
   /// The constructors declared in this fragment.
   ///
   /// The list is empty for [MixinFragment].
+  List<ConstructorFragment> get constructors;
+
+  /// The constructors declared in this fragment.
+  ///
+  /// The list is empty for [MixinFragment].
+  @Deprecated('Use constructors instead')
   List<ConstructorFragment> get constructors2;
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/analysis/index.dart b/pkg/analyzer/lib/src/dart/analysis/index.dart
index 9d6ab72..7a22d00 100644
--- a/pkg/analyzer/lib/src/dart/analysis/index.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/index.dart
@@ -733,7 +733,7 @@
     // If the class has only a synthetic default constructor, then it
     // implicitly invokes the default super constructor. Associate the
     // invocation with the name of the class.
-    var defaultConstructor = declaredElement.constructors2.singleOrNull;
+    var defaultConstructor = declaredElement.constructors.singleOrNull;
     if (defaultConstructor is ConstructorElementImpl2 &&
         defaultConstructor.isSynthetic) {
       defaultConstructor.isDefaultConstructor;
diff --git a/pkg/analyzer/lib/src/dart/analysis/search.dart b/pkg/analyzer/lib/src/dart/analysis/search.dart
index 9912540..370afb5 100644
--- a/pkg/analyzer/lib/src/dart/analysis/search.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/search.dart
@@ -1288,7 +1288,7 @@
       var element = elements[i];
       _addDeclaration(element, element.name3!);
       _addGetters(element.getters);
-      _addConstructors(element.constructors2);
+      _addConstructors(element.constructors);
       _addFields(element.fields);
       _addMethods(element.methods);
       _addSetters(element.setters);
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index e7c36ab..71e0d40 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -296,7 +296,7 @@
     }
 
     // With only private non-factory constructors.
-    for (var constructor in constructors2) {
+    for (var constructor in constructors) {
       if (constructor.isPublic || constructor.isFactory) {
         return false;
       }
@@ -4967,17 +4967,23 @@
 
   @override
   List<Element> get children2 {
-    return [...super.children2, ...constructors2];
+    return [...super.children2, ...constructors];
   }
 
   @override
-  List<ConstructorElementImpl2> get constructors2 {
+  List<ConstructorElementImpl2> get constructors {
     _readMembers();
     return firstFragment.constructors
         .map((constructor) => constructor.element)
         .toList();
   }
 
+  @Deprecated('Use constructors instead')
+  @override
+  List<ConstructorElementImpl2> get constructors2 {
+    return constructors;
+  }
+
   @override
   InterfaceFragmentImpl get firstFragment;
 
@@ -5081,7 +5087,7 @@
       element: this,
       name: name,
     );
-    return constructors2.firstWhereOrNull((e) => e.name3 == name);
+    return constructors.firstWhereOrNull((e) => e.name3 == name);
   }
 
   @override
@@ -5302,6 +5308,7 @@
     ...typeParameters,
   ];
 
+  @override
   List<ConstructorFragmentImpl> get constructors {
     if (!identical(_constructors, _Sentinel.constructorElement)) {
       return _constructors;
@@ -5319,9 +5326,11 @@
     _constructors = constructors;
   }
 
+  @Deprecated('Use constructors instead')
   @override
-  List<ConstructorFragment> get constructors2 =>
-      constructors.cast<ConstructorFragment>();
+  List<ConstructorFragmentImpl> get constructors2 {
+    return constructors;
+  }
 
   @override
   String get displayName => name;
diff --git a/pkg/analyzer/lib/src/dart/element/type.dart b/pkg/analyzer/lib/src/dart/element/type.dart
index 88303a6..5816df8 100644
--- a/pkg/analyzer/lib/src/dart/element/type.dart
+++ b/pkg/analyzer/lib/src/dart/element/type.dart
@@ -659,7 +659,7 @@
   @override
   List<ConstructorElementMixin2> get constructors2 {
     return _constructors ??=
-        element3.constructors2.map((constructor) {
+        element3.constructors.map((constructor) {
           return ConstructorMember.from2(constructor, this);
         }).toFixedList();
   }
diff --git a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
index f115687..5e8586e 100644
--- a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
+++ b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
@@ -1047,7 +1047,7 @@
     // constructor in the class. A single unused, private constructor may serve
     // the purpose of preventing the class from being extended. In serving this
     // purpose, the constructor is "used."
-    if (element.enclosingElement.constructors2.length > 1 &&
+    if (element.enclosingElement.constructors.length > 1 &&
         !_isUsedMember(element)) {
       _reportDiagnosticForElement(WarningCode.UNUSED_ELEMENT, element, [
         element.displayName,
diff --git a/pkg/analyzer/lib/src/fine/library_manifest.dart b/pkg/analyzer/lib/src/fine/library_manifest.dart
index 23c3d6b..f2ab1a1 100644
--- a/pkg/analyzer/lib/src/fine/library_manifest.dart
+++ b/pkg/analyzer/lib/src/fine/library_manifest.dart
@@ -205,7 +205,7 @@
       // The supertype could be a mixin application itself.
       addForElement(superElement);
 
-      for (var constructor in element.constructors2) {
+      for (var constructor in element.constructors) {
         var lookupName = constructor.lookupName?.asLookupName;
         if (lookupName == null) {
           continue;
@@ -416,7 +416,7 @@
       return;
     }
 
-    for (var constructor in instanceElement.constructors2) {
+    for (var constructor in instanceElement.constructors) {
       _addInterfaceElementConstructor(
         encodingContext: encodingContext,
         interfaceItem: interfaceItem,
@@ -1211,7 +1211,7 @@
     required InterfaceElementImpl2 interfaceElement,
     required InterfaceItem item,
   }) {
-    for (var constructor in interfaceElement.constructors2) {
+    for (var constructor in interfaceElement.constructors) {
       if (!_matchInterfaceElementConstructor(
         interfaceItem: item,
         interfaceMatchContext: matchContext,
diff --git a/pkg/analyzer/lib/src/generated/element_resolver.dart b/pkg/analyzer/lib/src/generated/element_resolver.dart
index 2102c74..d7e3a53 100644
--- a/pkg/analyzer/lib/src/generated/element_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/element_resolver.dart
@@ -409,7 +409,7 @@
     } else {
       if (element.isFactory &&
           // Check if we've reported [NO_GENERATIVE_CONSTRUCTORS_IN_SUPERCLASS].
-          !element.enclosingElement.constructors2.every(
+          !element.enclosingElement.constructors.every(
             (constructor) => constructor.isFactory,
           )) {
         _errorReporter.atNode(
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 845d75d..6640c3d 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -3482,7 +3482,7 @@
   ) {
     if (fragment is InterfaceFragmentImpl) {
       var element = fragment.element;
-      for (var constructor in element.constructors2) {
+      for (var constructor in element.constructors) {
         if (constructor.isGenerative && !constructor.isSynthetic) {
           return;
         }
@@ -3950,7 +3950,7 @@
       return;
     }
 
-    var hasGenerativeConstConstructor = enclosingClass.constructors2.any(
+    var hasGenerativeConstConstructor = enclosingClass.constructors.any(
       (c) => c.isConst && !c.isFactory,
     );
     if (!hasGenerativeConstConstructor) return;
@@ -4172,7 +4172,7 @@
     NamedType mixinName,
     InterfaceElement mixinElement,
   ) {
-    for (var constructor in mixinElement.constructors2) {
+    for (var constructor in mixinElement.constructors) {
       if (!constructor.isSynthetic && !constructor.isFactory) {
         errorReporter.atNode(
           mixinName,
@@ -4529,7 +4529,7 @@
   /// See [CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT].
   void _checkForNoDefaultSuperConstructorImplicit(ClassFragmentImpl fragment) {
     // do nothing if there is explicit constructor
-    var constructors = fragment.element.constructors2;
+    var constructors = fragment.element.constructors;
     if (!constructors[0].isSynthetic) {
       return;
     }
@@ -4575,7 +4575,7 @@
     if (superType == null) {
       return false;
     }
-    if (_enclosingClass!.constructors2.every(
+    if (_enclosingClass!.constructors.every(
       (constructor) => constructor.isFactory,
     )) {
       // A class with no generative constructors *can* be extended if the
@@ -4583,11 +4583,11 @@
       return false;
     }
     var superElement = superType.element3;
-    if (superElement.constructors2.isEmpty) {
+    if (superElement.constructors.isEmpty) {
       // Exclude empty constructor set, which indicates other errors occurred.
       return false;
     }
-    if (superElement.constructors2.every(
+    if (superElement.constructors.every(
       (constructor) => constructor.isFactory,
     )) {
       // For `E extends Exception`, etc., this will never work, because it has
@@ -5381,7 +5381,7 @@
     }
     var superElement = superType.element3;
 
-    if (superElement.constructors2.every(
+    if (superElement.constructors.every(
       (constructor) => constructor.isFactory,
     )) {
       // Already reported [NO_GENERATIVE_CONSTRUCTORS_IN_SUPERCLASS].
diff --git a/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart b/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
index 07b3898..e398927 100644
--- a/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
@@ -26,7 +26,7 @@
     ];
 
     for (var interfaceElement in interfaceElements) {
-      for (var constructorElement in interfaceElement.constructors2) {
+      for (var constructorElement in interfaceElement.constructors) {
         _constructorElement(interfaceElement, constructorElement);
       }
     }
diff --git a/pkg/analyzer/lib/src/summary2/extension_type.dart b/pkg/analyzer/lib/src/summary2/extension_type.dart
index 0329eb1..542f7a0 100644
--- a/pkg/analyzer/lib/src/summary2/extension_type.dart
+++ b/pkg/analyzer/lib/src/summary2/extension_type.dart
@@ -162,7 +162,7 @@
             .where(typeSystem.isValidExtensionTypeSuperinterface)
             .toFixedList();
 
-    var primaryConstructor = element.constructors2.first;
+    var primaryConstructor = element.constructors.first;
     var primaryFormalParameter = primaryConstructor.formalParameters.first;
     primaryFormalParameter as FieldFormalParameterElementImpl2;
     primaryFormalParameter.type = type;
diff --git a/pkg/analyzer/lib/src/summary2/library_builder.dart b/pkg/analyzer/lib/src/summary2/library_builder.dart
index 49535a4..a549794 100644
--- a/pkg/analyzer/lib/src/summary2/library_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/library_builder.dart
@@ -196,7 +196,7 @@
 
   void buildEnumSyntheticConstructors() {
     bool hasConstructor(EnumFragmentImpl fragment) {
-      for (var constructor in fragment.element.constructors2) {
+      for (var constructor in fragment.element.constructors) {
         if (constructor.isGenerative || constructor.name3 == 'new') {
           return true;
         }
@@ -269,7 +269,7 @@
       if (classFragment is! ClassFragmentImpl) continue;
       if (classFragment.isMixinApplication) continue;
       if (classFragment.isAugmentation) continue;
-      var hasConst = classFragment.element.constructors2.any((e) => e.isConst);
+      var hasConst = classFragment.element.constructors.any((e) => e.isConst);
       if (hasConst) {
         withConstConstructors.add(classFragment);
       }
diff --git a/pkg/analyzer/lib/src/summary2/super_constructor_resolver.dart b/pkg/analyzer/lib/src/summary2/super_constructor_resolver.dart
index e9ffdf2..099a783 100644
--- a/pkg/analyzer/lib/src/summary2/super_constructor_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/super_constructor_resolver.dart
@@ -16,7 +16,7 @@
   void perform() {
     for (var builder in _linker.builders.values) {
       for (var classElement in builder.element.classes) {
-        for (var constructorElement in classElement.constructors2) {
+        for (var constructorElement in classElement.constructors) {
           _constructor(classElement, constructorElement);
         }
       }
diff --git a/pkg/analyzer/lib/src/test_utilities/find_element2.dart b/pkg/analyzer/lib/src/test_utilities/find_element2.dart
index adc9359..19e16aa 100644
--- a/pkg/analyzer/lib/src/test_utilities/find_element2.dart
+++ b/pkg/analyzer/lib/src/test_utilities/find_element2.dart
@@ -186,7 +186,7 @@
       for (var class_ in classes) {
         findInExecutables(class_.getters);
         findInExecutables(class_.setters);
-        findInExecutables(class_.constructors2);
+        findInExecutables(class_.constructors);
         findInExecutables(class_.methods);
       }
     }
@@ -361,19 +361,19 @@
 
     for (var class_ in libraryElement.classes) {
       if (of == null || class_.name3 == of) {
-        findIn(class_.constructors2);
+        findIn(class_.constructors);
       }
     }
 
     for (var enum_ in libraryElement.enums) {
       if (of == null || enum_.name3 == of) {
-        findIn(enum_.constructors2);
+        findIn(enum_.constructors);
       }
     }
 
     for (var extensionType in libraryElement.extensionTypes) {
       if (of == null || extensionType.name3 == of) {
-        findIn(extensionType.constructors2);
+        findIn(extensionType.constructors);
       }
     }
 
@@ -447,7 +447,7 @@
     FormalParameterElement? result;
 
     for (var class_ in libraryElement.classes) {
-      for (var constructor in class_.constructors2) {
+      for (var constructor in class_.constructors) {
         for (var formalParameter in constructor.formalParameters) {
           if (formalParameter.name3 == name) {
             if (result != null) {
@@ -512,7 +512,7 @@
     return _findInClassesLike(
       className: name,
       fromClass:
-          (e) => e.constructors2.firstWhereOrNull((element) {
+          (e) => e.constructors.firstWhereOrNull((element) {
             return element.name3 == 'new';
           }),
       fromExtension: (_) => null,
diff --git a/pkg/analyzer/test/src/dart/analysis/search_test.dart b/pkg/analyzer/test/src/dart/analysis/search_test.dart
index 54fa955..80a529c 100644
--- a/pkg/analyzer/test/src/dart/analysis/search_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/search_test.dart
@@ -929,7 +929,7 @@
 ''');
 
     var A = findElement2.class_('A');
-    var element = A.constructors2.single;
+    var element = A.constructors.single;
     expect(element.name3, 'named');
 
     await assertElementReferencesText(element, r'''
diff --git a/pkg/analyzer/test/src/dart/resolution/constant_test.dart b/pkg/analyzer/test/src/dart/resolution/constant_test.dart
index 8a3c23c..5f25646 100644
--- a/pkg/analyzer/test/src/dart/resolution/constant_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/constant_test.dart
@@ -39,7 +39,7 @@
     );
 
     var aLib = findElement2.import('package:test/a.dart').importedLibrary2!;
-    var aConstructor = aLib.getClass2('A')!.constructors2.single;
+    var aConstructor = aLib.getClass2('A')!.constructors.single;
     var p = aConstructor.formalParameters.single;
     var pf = p.firstFragment as DefaultParameterFragmentImpl;
 
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index 1db64c6..52ee0b8 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -1178,7 +1178,7 @@
 
       _writeElementList('fields', e, e.fields, _writeFieldElement);
       if (e is InterfaceElementImpl2) {
-        var constructors = e.constructors2;
+        var constructors = e.constructors;
         if (e is MixinElementImpl2) {
           expect(constructors, isEmpty);
         } else if (configuration.withConstructors) {
@@ -1250,7 +1250,7 @@
       );
       _writeFragmentList('fields', f, f.fields, _writeFieldFragment);
       if (f is InterfaceFragment) {
-        var constructors = f.constructors2;
+        var constructors = f.constructors;
         if (f is MixinElement) {
           expect(constructors, isEmpty);
         } else if (configuration.withConstructors) {
diff --git a/pkg/analyzer/test/src/summary/elements/class_test.dart b/pkg/analyzer/test/src/summary/elements/class_test.dart
index d77b804..759b153 100644
--- a/pkg/analyzer/test/src/summary/elements/class_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/class_test.dart
@@ -11832,7 +11832,7 @@
 }
 ''');
 
-    var constructors = library.getClass2('A')!.constructors2;
+    var constructors = library.getClass2('A')!.constructors;
     expect(constructors, hasLength(1));
   }
 
@@ -18004,7 +18004,7 @@
 ''');
 
     var X = library.getClass2('X')!;
-    expect(X.constructors2, hasLength(1));
+    expect(X.constructors, hasLength(1));
   }
 
   test_classAlias_constructors_default() async {
diff --git a/pkg/linter/lib/src/extensions.dart b/pkg/linter/lib/src/extensions.dart
index 0b26d1c..bdaedc9 100644
--- a/pkg/linter/lib/src/extensions.dart
+++ b/pkg/linter/lib/src/extensions.dart
@@ -202,7 +202,7 @@
     }
 
     // With only private non-factory constructors.
-    for (var constructor in constructors2) {
+    for (var constructor in constructors) {
       if (!constructor.isPrivate || constructor.isFactory) {
         return null;
       }
diff --git a/pkg/linter/lib/src/rules/avoid_classes_with_only_static_members.dart b/pkg/linter/lib/src/rules/avoid_classes_with_only_static_members.dart
index 7b5e7ac..b29a85b 100644
--- a/pkg/linter/lib/src/rules/avoid_classes_with_only_static_members.dart
+++ b/pkg/linter/lib/src/rules/avoid_classes_with_only_static_members.dart
@@ -56,7 +56,7 @@
     var declaredElement = node.declaredFragment?.element;
     if (declaredElement == null) return;
 
-    var constructors = declaredElement.constructors2;
+    var constructors = declaredElement.constructors;
     if (constructors.isNotEmpty &&
         constructors.any((c) => !c.isDefaultConstructor)) {
       return;
diff --git a/pkg/linter/lib/src/rules/avoid_field_initializers_in_const_classes.dart b/pkg/linter/lib/src/rules/avoid_field_initializers_in_const_classes.dart
index 3627f76..f658447 100644
--- a/pkg/linter/lib/src/rules/avoid_field_initializers_in_const_classes.dart
+++ b/pkg/linter/lib/src/rules/avoid_field_initializers_in_const_classes.dart
@@ -70,7 +70,7 @@
       if (element == null) return;
 
       // no lint if several constructors
-      if (element.constructors2.length > 1) return;
+      if (element.constructors.length > 1) return;
 
       var visitor = HasParameterReferenceVisitor(
         declaration.parameters.parameterFragments,
@@ -93,7 +93,7 @@
       var declaredElement = parent.declaredFragment?.element;
       if (declaredElement == null) return;
 
-      if (declaredElement.constructors2.every((e) => !e.isConst)) {
+      if (declaredElement.constructors.every((e) => !e.isConst)) {
         return;
       }
       for (var variable in node.fields.variables) {
diff --git a/pkg/linter/lib/src/rules/unreachable_from_main.dart b/pkg/linter/lib/src/rules/unreachable_from_main.dart
index 7145035..0dcb0ed 100644
--- a/pkg/linter/lib/src/rules/unreachable_from_main.dart
+++ b/pkg/linter/lib/src/rules/unreachable_from_main.dart
@@ -191,7 +191,7 @@
         if (metadata.annotations[i].isReflectiveTest) {
           // The class is instantiated through the use of mirrors in
           // 'test_reflective_loader'.
-          var unnamedConstructor = element.constructors2.firstWhereOrNull(
+          var unnamedConstructor = element.constructors.firstWhereOrNull(
             (constructor) => constructor.name3 == 'new',
           );
           if (unnamedConstructor != null) {
diff --git a/pkg/linter/lib/src/rules/use_key_in_widget_constructors.dart b/pkg/linter/lib/src/rules/use_key_in_widget_constructors.dart
index efb6bd4..28c0d66 100644
--- a/pkg/linter/lib/src/rules/use_key_in_widget_constructors.dart
+++ b/pkg/linter/lib/src/rules/use_key_in_widget_constructors.dart
@@ -44,7 +44,7 @@
     if (classElement != null &&
         classElement.isPublic &&
         classElement.extendsWidget &&
-        classElement.constructors2.where((e) => !e.isSynthetic).isEmpty) {
+        classElement.constructors.where((e) => !e.isSynthetic).isEmpty) {
       rule.reportAtToken(node.name);
     }
     super.visitClassDeclaration(node);