Skip to content

Commit 6ba8018

Browse files
fshcheglovCommit Queue
authored andcommitted
Remove PropertyAccessorFragmentImplImplicitGetter, PropertyAccessorFragmentImplImplicitSetter, and FormalParameterFragmentImplOfImplicitSetter, replace with GetterFragmentImpl, and SetterFragmentImpl.
Change-Id: Iaf8066a5f04635616b18a7c7cfb890f6b2d46df8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/436100 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Paul Berry <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 2be5486 commit 6ba8018

File tree

3 files changed

+17
-201
lines changed

3 files changed

+17
-201
lines changed

pkg/analyzer/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@
5959
* Deprecate `InterfaceType.lookUpGetter3`, use `lookUpGetter` instead.
6060
* Deprecate `InterfaceType.lookUpMethod3`, use `lookUpMethod` instead.
6161
* Deprecate `InterfaceType.lookUpSetter3`, use `lookUpSetter` instead.
62+
* Remove `PropertyAccessorFragmentImplImplicitGetter`, `PropertyAccessorFragmentImplImplicitSetter`,
63+
and `FormalParameterFragmentImplOfImplicitSetter`, replace with `GetterFragmentImpl`, and `SetterFragmentImpl`.
6264

6365
## 7.4.1
6466
* Restore `InstanceElement.augmented` getter.

pkg/analyzer/lib/src/dart/element/element.dart

Lines changed: 0 additions & 198 deletions
Original file line numberDiff line numberDiff line change
@@ -3618,71 +3618,6 @@ class FormalParameterFragmentImpl extends VariableFragmentImpl
36183618
) => FormalParameterElementImpl(firstFragment as FormalParameterFragmentImpl);
36193619
}
36203620

3621-
/// The parameter of an implicit setter.
3622-
class FormalParameterFragmentImplOfImplicitSetter
3623-
extends FormalParameterFragmentImpl {
3624-
final PropertyAccessorFragmentImplImplicitSetter setter;
3625-
3626-
FormalParameterFragmentImplOfImplicitSetter(this.setter)
3627-
: super(
3628-
nameOffset: -1,
3629-
name2:
3630-
setter.variable2.name2 == null
3631-
? null
3632-
: considerCanonicalizeString('_${setter.variable2.name2!}'),
3633-
nameOffset2: null,
3634-
parameterKind: ParameterKind.REQUIRED,
3635-
) {
3636-
enclosingElement3 = setter;
3637-
isSynthetic = true;
3638-
}
3639-
3640-
@override
3641-
bool get inheritsCovariant {
3642-
var variable = setter.variable2;
3643-
if (variable is FieldFragmentImpl) {
3644-
return variable.inheritsCovariant;
3645-
}
3646-
return false;
3647-
}
3648-
3649-
@override
3650-
set inheritsCovariant(bool value) {
3651-
var variable = setter.variable2;
3652-
if (variable is FieldFragmentImpl) {
3653-
variable.inheritsCovariant = value;
3654-
}
3655-
}
3656-
3657-
@override
3658-
bool get isCovariant {
3659-
if (isExplicitlyCovariant || inheritsCovariant) {
3660-
return true;
3661-
}
3662-
return false;
3663-
}
3664-
3665-
@override
3666-
bool get isExplicitlyCovariant {
3667-
var variable = setter.variable2;
3668-
if (variable is FieldFragmentImpl) {
3669-
return variable.isCovariant;
3670-
}
3671-
return false;
3672-
}
3673-
3674-
@override
3675-
int get offset => setter.offset;
3676-
3677-
@override
3678-
TypeImpl get type => setter.variable2.type;
3679-
3680-
@override
3681-
set type(DartType type) {
3682-
assert(false); // Should never be called.
3683-
}
3684-
}
3685-
36863621
mixin FragmentedAnnotatableElementMixin<E extends Fragment>
36873622
implements FragmentedElementMixin<E> {
36883623
String? get documentationComment {
@@ -9027,122 +8962,6 @@ sealed class PropertyAccessorFragmentImpl extends ExecutableFragmentImpl
90278962
}
90288963
}
90298964

9030-
/// Implicit getter for a [PropertyInducingFragmentImpl].
9031-
class PropertyAccessorFragmentImplImplicitGetter extends GetterFragmentImpl {
9032-
/// Create the implicit getter and bind it to the [property].
9033-
PropertyAccessorFragmentImplImplicitGetter(super.property)
9034-
: super.forVariable();
9035-
9036-
@override
9037-
FragmentImpl get enclosingElement3 {
9038-
return variable2.enclosingElement3;
9039-
}
9040-
9041-
@override
9042-
bool get hasImplicitReturnType => variable2.hasImplicitType;
9043-
9044-
@override
9045-
bool get isGetter => true;
9046-
9047-
@override
9048-
String? get name2 => variable2.name2;
9049-
9050-
@override
9051-
int get offset => variable2.offset;
9052-
9053-
@override
9054-
TypeImpl get returnType => variable2.type;
9055-
9056-
@override
9057-
set returnType(DartType returnType) {
9058-
assert(false); // Should never be called.
9059-
}
9060-
9061-
@override
9062-
Version? get sinceSdkVersion => variable2.sinceSdkVersion;
9063-
9064-
@override
9065-
FunctionTypeImpl get type {
9066-
return _type ??= FunctionTypeImpl(
9067-
typeFormals: const <TypeParameterFragmentImpl>[],
9068-
parameters: const <FormalParameterElementImpl>[],
9069-
returnType: returnType,
9070-
nullabilitySuffix: NullabilitySuffix.none,
9071-
);
9072-
}
9073-
9074-
@override
9075-
set type(FunctionType type) {
9076-
assert(false); // Should never be called.
9077-
}
9078-
9079-
@override
9080-
PropertyInducingFragmentImpl get variable2 => super.variable2!;
9081-
}
9082-
9083-
/// Implicit setter for a [PropertyInducingFragmentImpl].
9084-
class PropertyAccessorFragmentImplImplicitSetter extends SetterFragmentImpl {
9085-
/// Create the implicit setter and bind it to the [property].
9086-
PropertyAccessorFragmentImplImplicitSetter(super.property)
9087-
: super.forVariable();
9088-
9089-
@override
9090-
FragmentImpl get enclosingElement3 {
9091-
return variable2.enclosingElement3;
9092-
}
9093-
9094-
@override
9095-
bool get isSetter => true;
9096-
9097-
@override
9098-
String? get name2 => variable2.name2;
9099-
9100-
@override
9101-
int get offset => variable2.offset;
9102-
9103-
@override
9104-
List<FormalParameterFragmentImpl> get parameters {
9105-
if (_parameters.isNotEmpty) {
9106-
return _parameters;
9107-
}
9108-
9109-
return _parameters = List.generate(
9110-
1,
9111-
(_) => FormalParameterFragmentImplOfImplicitSetter(this),
9112-
growable: false,
9113-
);
9114-
}
9115-
9116-
@override
9117-
TypeImpl get returnType => VoidTypeImpl.instance;
9118-
9119-
@override
9120-
set returnType(DartType returnType) {
9121-
assert(false); // Should never be called.
9122-
}
9123-
9124-
@override
9125-
Version? get sinceSdkVersion => variable2.sinceSdkVersion;
9126-
9127-
@override
9128-
FunctionTypeImpl get type {
9129-
return _type ??= FunctionTypeImpl(
9130-
typeFormals: const <TypeParameterFragmentImpl>[],
9131-
parameters: parameters.map((f) => f.asElement2).toList(),
9132-
returnType: returnType,
9133-
nullabilitySuffix: NullabilitySuffix.none,
9134-
);
9135-
}
9136-
9137-
@override
9138-
set type(FunctionType type) {
9139-
assert(false); // Should never be called.
9140-
}
9141-
9142-
@override
9143-
PropertyInducingFragmentImpl get variable2 => super.variable2!;
9144-
}
9145-
91468965
/// Common base class for all analyzer-internal classes that implement
91478966
/// [PropertyInducingElement].
91488967
abstract class PropertyInducingElement2OrMember
@@ -9370,23 +9189,6 @@ abstract class PropertyInducingFragmentImpl
93709189
shouldUseTypeForInitializerInference = false;
93719190
return _type!;
93729191
}
9373-
9374-
@override
9375-
set type(TypeImpl type) {
9376-
super.type = type;
9377-
// Reset cached types of synthetic getters and setters.
9378-
// TODO(scheglov): Consider not caching these types.
9379-
if (!isSynthetic) {
9380-
var getter = this.getter;
9381-
if (getter is PropertyAccessorFragmentImplImplicitGetter) {
9382-
getter._type = null;
9383-
}
9384-
var setter = this.setter;
9385-
if (setter is PropertyAccessorFragmentImplImplicitSetter) {
9386-
setter._type = null;
9387-
}
9388-
}
9389-
}
93909192
}
93919193

93929194
/// Common base class for all analyzer-internal classes that implement

pkg/analyzer/lib/src/test_utilities/mock_sdk_elements.dart

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1025,15 +1025,26 @@ class _MockSdkElementsBuilder {
10251025
fragment.isFinal = isFinal;
10261026
fragment.isStatic = isStatic;
10271027

1028-
var getterFragment = PropertyAccessorFragmentImplImplicitGetter(fragment);
1028+
var getterFragment = GetterFragmentImpl(name2: name, nameOffset: -1)
1029+
..isSynthetic = true;
10291030
var getterElement = GetterElementImpl(Reference.root(), getterFragment);
10301031
element.getter2 = getterElement;
10311032

10321033
if (!isConst && !isFinal) {
1033-
var setterFragment = PropertyAccessorFragmentImplImplicitSetter(fragment);
1034+
var valueFragment = FormalParameterFragmentImpl(
1035+
nameOffset: -1,
1036+
name2: null,
1037+
nameOffset2: null,
1038+
parameterKind: ParameterKind.REQUIRED,
1039+
);
1040+
var setterFragment =
1041+
SetterFragmentImpl(name2: name, nameOffset: -1)
1042+
..isSynthetic = true
1043+
..parameters = [valueFragment];
10341044
var setterElement = SetterElementImpl(Reference.root(), setterFragment);
10351045
element.setter2 = setterElement;
10361046
}
1047+
10371048
fragment.type = type;
10381049
return fragment;
10391050
}
@@ -1260,7 +1271,8 @@ class _MockSdkElementsBuilder {
12601271
var fragment = TopLevelVariableFragmentImpl(name2: name, nameOffset: -1)
12611272
..isConst = true;
12621273
var element = TopLevelVariableElementImpl(Reference.root(), fragment);
1263-
var getterFragment = PropertyAccessorFragmentImplImplicitGetter(fragment);
1274+
var getterFragment = GetterFragmentImpl(name2: name, nameOffset: -1)
1275+
..isSynthetic = true;
12641276
var getterElement = GetterElementImpl(Reference.root(), getterFragment);
12651277
element.getter2 = getterElement;
12661278
fragment.type = type;

0 commit comments

Comments
 (0)