Deprecate/rename primaryConstructor2 and representation2 from ExtensionTypeElement.

Change-Id: I3699157f4b8d640449e2dba307d2bf587b243e60
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/435900
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
This commit is contained in:
Fedor Shcheglov
2025-06-20 14:36:32 -07:00
committed by Commit Queue
parent 307b2644c6
commit 842ed5606c
13 changed files with 59 additions and 19 deletions
@@ -227,7 +227,7 @@ class DefinitionHandler
// which is not what the user expects.
if (codeFragment.element.enclosingElement
case ExtensionTypeElement enclosingElement
when enclosingElement.primaryConstructor2 == codeFragment.element) {
when enclosingElement.primaryConstructor == codeFragment.element) {
codeFragment = codeFragment.enclosingFragment;
}
@@ -1419,7 +1419,7 @@ class DeclarationHelper {
if (element != null) {
if (!mustBeType) {
_addMembersOfEnclosingInstance(element);
var fieldElement = element.representation2;
var fieldElement = element.representation;
_suggestField(field: fieldElement);
}
_suggestTypeParameters(element.typeParameters2);
+4
View File
@@ -48,6 +48,10 @@
* Deprecate `JoinPatternVariableElement.variables2`, use `variables` instead.
* Deprecate `Annotatable.metadata2`, use `metadata` instead.
* Deprecate `Element.nonSynthetic2`, use `nonSynthetic` instead.
* Deprecate `ExtensionTypeElement.primaryConstructor2`, use `primaryConstructor` instead.
* Deprecate `ExtensionTypeElement.representation2`, use `representation` instead.
* Deprecate `ExtensionTypeFragment.primaryConstructor2`, use `primaryConstructor` instead.
* Deprecate `ExtensionTypeFragment.representation2`, use `representation` instead.
## 7.4.1
* Restore `InstanceElement.augmented` getter.
+8 -4
View File
@@ -3540,16 +3540,20 @@ package:analyzer/dart/element/element.dart:
new (constructor: ExtensionTypeElement Function())
firstFragment (getter: ExtensionTypeFragment)
fragments (getter: List<ExtensionTypeFragment>)
primaryConstructor2 (getter: ConstructorElement)
representation2 (getter: FieldElement)
primaryConstructor (getter: ConstructorElement)
primaryConstructor2 (getter: ConstructorElement, deprecated)
representation (getter: FieldElement)
representation2 (getter: FieldElement, deprecated)
typeErasure (getter: DartType)
ExtensionTypeFragment (class extends Object implements InterfaceFragment):
new (constructor: ExtensionTypeFragment Function())
element (getter: ExtensionTypeElement)
nextFragment (getter: ExtensionTypeFragment?)
previousFragment (getter: ExtensionTypeFragment?)
primaryConstructor2 (getter: ConstructorFragment)
representation2 (getter: FieldFragment)
primaryConstructor (getter: ConstructorFragment)
primaryConstructor2 (getter: ConstructorFragment, deprecated)
representation (getter: FieldFragment)
representation2 (getter: FieldFragment, deprecated)
FieldElement (class extends Object implements PropertyInducingElement):
new (constructor: FieldElement Function())
baseElement (getter: FieldElement)
@@ -1306,9 +1306,17 @@ abstract class ExtensionTypeElement implements InterfaceElement {
List<ExtensionTypeFragment> get fragments;
/// The primary constructor of this extension.
ConstructorElement get primaryConstructor;
/// The primary constructor of this extension.
@Deprecated('Use primaryConstructor instead')
ConstructorElement get primaryConstructor2;
/// The representation of this extension.
FieldElement get representation;
/// The representation of this extension.
@Deprecated('Use representation instead')
FieldElement get representation2;
/// The extension type erasure, obtained by recursively replacing every
@@ -1331,9 +1339,18 @@ abstract class ExtensionTypeFragment implements InterfaceFragment {
@override
ExtensionTypeFragment? get previousFragment;
/// The primary constructor of this extension.
ConstructorFragment get primaryConstructor;
/// The primary constructor of this extension.
@Deprecated('Use primaryConstructor instead')
ConstructorFragment get primaryConstructor2;
/// The representation of this extension.
FieldFragment get representation;
/// The representation of this extension.
@Deprecated('Use representation instead')
FieldFragment get representation2;
}
@@ -2990,7 +2990,7 @@ class _InstanceCreationEvaluator {
var definingType = this.definingType;
if (definingType.element3 case ExtensionTypeElement element) {
var representation = _fieldMap[element.representation2.name3];
var representation = _fieldMap[element.representation.name3];
if (representation != null) {
return representation;
}
+20 -5
View File
@@ -2810,13 +2810,25 @@ class ExtensionTypeElementImpl extends InterfaceElementImpl
}
@override
ConstructorElement get primaryConstructor2 {
ConstructorElement get primaryConstructor {
return firstFragment.primaryConstructor.element;
}
@Deprecated('Use primaryConstructor instead')
@override
ConstructorElement get primaryConstructor2 {
return primaryConstructor;
}
@override
FieldElementImpl get representation {
return firstFragment.representation.element;
}
@Deprecated('Use representation instead')
@override
FieldElementImpl get representation2 {
return firstFragment.representation.element;
return representation;
}
@override
@@ -2863,20 +2875,23 @@ class ExtensionTypeFragmentImpl extends InterfaceFragmentImpl
ExtensionTypeFragmentImpl? get previousFragment =>
super.previousFragment as ExtensionTypeFragmentImpl?;
@override
ConstructorFragmentImpl get primaryConstructor {
return constructors.first;
}
@Deprecated('Use primaryConstructor instead')
@override
ConstructorFragment get primaryConstructor2 =>
primaryConstructor as ConstructorFragment;
ConstructorFragmentImpl get primaryConstructor2 => primaryConstructor;
@override
FieldFragmentImpl get representation {
return fields.first;
}
@Deprecated('Use representation instead')
@override
FieldFragment get representation2 => representation as FieldFragment;
FieldFragmentImpl get representation2 => representation;
void addFragment(ExtensionTypeFragmentImpl fragment) {
fragment.augmentedInternal = element;
+1 -1
View File
@@ -789,7 +789,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
TypeImpl? get representationType {
if (element3 case ExtensionTypeElement element) {
var substitution = Substitution.fromInterfaceType(this);
var representationType = element.representation2.type;
var representationType = element.representation.type;
return substitution.substituteType(representationType);
}
return null;
@@ -73,7 +73,7 @@ class GetterSetterTypesVerifier {
Element errorElement;
if (getter.enclosingElement == element) {
if (element is ExtensionTypeElementImpl &&
element.representation2.getter2 == getter) {
element.representation.getter2 == getter) {
errorElement = setter;
} else {
errorElement = getter;
@@ -891,7 +891,7 @@ class _FieldPromotability
// Private representation fields of extension types are always promotable.
// They also don't affect promotability of any other fields.
for (var extensionType in element.extensionTypes) {
var representation = extensionType.representation2;
var representation = extensionType.representation;
var representationName = representation.name3;
if (representationName != null) {
if (representationName.startsWith('_')) {
@@ -1130,11 +1130,11 @@ class _Element2Writer extends _AbstractElementWriter {
expect(e.supertype, isNull);
_elementPrinter.writeNamedElement2(
'representation',
e.representation2,
e.representation,
);
_elementPrinter.writeNamedElement2(
'primaryConstructor',
e.primaryConstructor2,
e.primaryConstructor,
);
_elementPrinter.writeNamedType('typeErasure', e.typeErasure);
_elementPrinter.writeTypeList('interfaces', e.interfaces);
@@ -52,7 +52,7 @@ bool _isJsInteropType(DartType type, _InteropTypeKind kind) {
if (dartJsInteropTypeKind && element.isFromLibrary(_dartJsInteropUri)) {
return true;
} else if (userJsInteropTypeKind) {
var representationType = element.representation2.type;
var representationType = element.representation.type;
return _isJsInteropType(
representationType,
_InteropTypeKind.dartJsInteropType,
@@ -101,7 +101,7 @@ class _Visitor extends SimpleAstVisitor<void> {
}
if (clazz is ExtensionTypeElement) {
return clazz.primaryConstructor2.isConst;
return clazz.primaryConstructor.isConst;
}
// Constructor with implicit `super()` call.