Skip to content

Commit 0e12390

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Remove PropertyAccessorElementOrMember.
Change-Id: I3882b02140021fbb2733ff8f5ff2ae575ab129fa Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/437361 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Paul Berry <[email protected]>
1 parent 7505e45 commit 0e12390

File tree

8 files changed

+40
-83
lines changed

8 files changed

+40
-83
lines changed

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

Lines changed: 17 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4494,16 +4494,20 @@ class GetterFragmentImpl extends PropertyAccessorFragmentImpl
44944494
GetterFragmentImpl.forVariable(super.variable) : super.forVariable();
44954495

44964496
@override
4497-
bool get isGetter => true;
4498-
4499-
@override
4500-
bool get isSetter => false;
4497+
ElementKind get kind {
4498+
return ElementKind.GETTER;
4499+
}
45014500

45024501
void addFragment(GetterFragmentImpl fragment) {
45034502
fragment.element = element;
45044503
fragment.previousFragment = this;
45054504
nextFragment = fragment;
45064505
}
4506+
4507+
@override
4508+
void appendTo(ElementDisplayStringBuilder builder) {
4509+
builder.writeExecutableElement(this, 'get $displayName');
4510+
}
45074511
}
45084512

45094513
/// A concrete implementation of a [HideElementCombinator].
@@ -5610,15 +5614,6 @@ abstract class InterfaceFragmentImpl extends InstanceFragmentImpl
56105614
_constructors = [..._constructors, fragment];
56115615
fragment.enclosingElement3 = this;
56125616
}
5613-
5614-
static PropertyAccessorElementOrMember? getSetterFromAccessors(
5615-
String setterName,
5616-
List<PropertyAccessorElementOrMember> accessors,
5617-
) {
5618-
return accessors.firstWhereOrNull(
5619-
(accessor) => accessor.isSetter && accessor.name2 == setterName,
5620-
);
5621-
}
56225617
}
56235618

56245619
class JoinPatternVariableElementImpl extends PatternVariableElementImpl
@@ -8869,22 +8864,8 @@ abstract class PropertyAccessorElementImpl extends ExecutableElementImpl
88698864
}
88708865
}
88718866

8872-
/// Common base class for all analyzer-internal classes that implement
8873-
/// `PropertyAccessorElement`.
8874-
abstract class PropertyAccessorElementOrMember
8875-
implements ExecutableElementOrMember {
8876-
/// Whether the accessor represents a getter.
8877-
bool get isGetter;
8878-
8879-
/// Whether the accessor represents a setter.
8880-
bool get isSetter;
8881-
8882-
@override
8883-
TypeImpl get returnType;
8884-
}
8885-
88868867
sealed class PropertyAccessorFragmentImpl extends ExecutableFragmentImpl
8887-
implements PropertyAccessorElementOrMember, PropertyAccessorFragment {
8868+
implements PropertyAccessorFragment {
88888869
@override
88898870
final String? name2;
88908871

@@ -8931,14 +8912,6 @@ sealed class PropertyAccessorFragmentImpl extends ExecutableFragmentImpl
89318912
setModifier(Modifier.ABSTRACT, isAbstract);
89328913
}
89338914

8934-
@override
8935-
ElementKind get kind {
8936-
if (isGetter) {
8937-
return ElementKind.GETTER;
8938-
}
8939-
return ElementKind.SETTER;
8940-
}
8941-
89428915
@override
89438916
MetadataImpl get metadata {
89448917
_ensureReadResolution();
@@ -8956,14 +8929,6 @@ sealed class PropertyAccessorFragmentImpl extends ExecutableFragmentImpl
89568929
}
89578930
return _nameOffset;
89588931
}
8959-
8960-
@override
8961-
void appendTo(ElementDisplayStringBuilder builder) {
8962-
builder.writeExecutableElement(
8963-
this,
8964-
(isGetter ? 'get ' : 'set ') + displayName,
8965-
);
8966-
}
89678932
}
89688933

89698934
/// Common base class for all analyzer-internal classes that implement
@@ -9295,10 +9260,9 @@ class SetterFragmentImpl extends PropertyAccessorFragmentImpl
92959260
SetterFragmentImpl.forVariable(super.variable) : super.forVariable();
92969261

92979262
@override
9298-
bool get isGetter => false;
9299-
9300-
@override
9301-
bool get isSetter => true;
9263+
ElementKind get kind {
9264+
return ElementKind.SETTER;
9265+
}
93029266

93039267
@override
93049268
String? get lookupName {
@@ -9317,6 +9281,11 @@ class SetterFragmentImpl extends PropertyAccessorFragmentImpl
93179281
fragment.previousFragment = this;
93189282
nextFragment = fragment;
93199283
}
9284+
9285+
@override
9286+
void appendTo(ElementDisplayStringBuilder builder) {
9287+
builder.writeExecutableElement(this, 'set $displayName');
9288+
}
93209289
}
93219290

93229291
/// A concrete implementation of a [ShowElementCombinator].

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1223,7 +1223,7 @@ abstract class PropertyAccessorMember extends ExecutableMember
12231223
declaration.typeParameters,
12241224
substitution,
12251225
);
1226-
if (declaration.isGetter) {
1226+
if (declaration is GetterFragmentImpl) {
12271227
return GetterMember._(
12281228
declaration: declaration,
12291229
substitution: freshTypeParameters.substitution,

pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import 'package:analyzer/src/generated/resolver.dart';
2323
import 'package:analyzer/src/generated/scope_helpers.dart';
2424
import 'package:analyzer/src/generated/super_context.dart';
2525
import 'package:analyzer/src/generated/variable_type_provider.dart';
26-
import 'package:analyzer/src/utilities/extensions/element.dart';
2726

2827
class MethodInvocationResolver with ScopeHelpers {
2928
/// The resolver driving this participant.
@@ -567,7 +566,7 @@ class MethodInvocationResolver with ScopeHelpers {
567566
required TypeImpl contextType,
568567
}) {
569568
var result = _extensionResolver.getOverrideMember(override, name);
570-
var member = result.getter2?.asElement;
569+
var member = result.getter2;
571570

572571
if (member == null) {
573572
_setInvalidTypeResolution(
@@ -600,9 +599,9 @@ class MethodInvocationResolver with ScopeHelpers {
600599
);
601600
}
602601

603-
nameNode.element = member.asElement2;
602+
nameNode.element = member;
604603

605-
if (member is PropertyAccessorElementOrMember) {
604+
if (member is PropertyAccessorElement2OrMember) {
606605
return _rewriteAsFunctionExpressionInvocation(
607606
node,
608607
node.target,

pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ class MemberDuplicateDefinitionVerifier {
528528
if (staticMember.isSynthetic) {
529529
errorCode =
530530
CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_AND_STATIC_FIELD;
531-
} else if (staticMember.isGetter) {
531+
} else if (staticMember is GetterFragmentImpl) {
532532
errorCode =
533533
CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_AND_STATIC_GETTER;
534534
} else {

pkg/analyzer/lib/src/generated/error_verifier.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2255,24 +2255,24 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
22552255
String name = method.name2 ?? '';
22562256

22572257
// find inherited property accessors
2258-
var getter =
2259-
_inheritanceManager
2260-
.getInherited(enclosingClass, Name(libraryUri, name))
2261-
?.asElement;
2262-
var setter =
2263-
_inheritanceManager
2264-
.getInherited(enclosingClass, Name(libraryUri, '$name='))
2265-
?.asElement;
2258+
var getter = _inheritanceManager.getInherited(
2259+
enclosingClass,
2260+
Name(libraryUri, name),
2261+
);
2262+
var setter = _inheritanceManager.getInherited(
2263+
enclosingClass,
2264+
Name(libraryUri, '$name='),
2265+
);
22662266

22672267
if (method.isStatic) {
2268-
void reportStaticConflict(ExecutableElementOrMember inherited) {
2268+
void reportStaticConflict(ExecutableElement2OrMember inherited) {
22692269
diagnosticReporter.atElement2(
22702270
method.asElement2,
22712271
CompileTimeErrorCode.CONFLICTING_STATIC_AND_INSTANCE,
22722272
arguments: [
22732273
enclosingClass.displayName,
22742274
name,
2275-
inherited.asElement2.enclosingElement!.displayName,
2275+
inherited.enclosingElement!.displayName,
22762276
],
22772277
);
22782278
}
@@ -2293,24 +2293,24 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
22932293
continue;
22942294
}
22952295

2296-
void reportFieldConflict(PropertyAccessorElementOrMember inherited) {
2296+
void reportFieldConflict(PropertyAccessorElement2OrMember inherited) {
22972297
diagnosticReporter.atElement2(
22982298
method.asElement2,
22992299
CompileTimeErrorCode.CONFLICTING_METHOD_AND_FIELD,
23002300
arguments: [
23012301
enclosingClass.displayName,
23022302
name,
2303-
inherited.asElement2.enclosingElement.displayName,
2303+
inherited.enclosingElement.displayName,
23042304
],
23052305
);
23062306
}
23072307

2308-
if (getter is PropertyAccessorElementOrMember) {
2308+
if (getter is GetterElement2OrMember) {
23092309
reportFieldConflict(getter);
23102310
continue;
23112311
}
23122312

2313-
if (setter is PropertyAccessorElementOrMember) {
2313+
if (setter is SetterElement2OrMember) {
23142314
reportFieldConflict(setter);
23152315
continue;
23162316
}

pkg/analyzer/lib/src/summary2/element_flags.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -415,8 +415,8 @@ class PropertyAccessorElementFlags {
415415
: 0;
416416
result |= element.invokesSuperSelf ? _invokesSuperSelf : 0;
417417
result |= element.isAugmentation ? _isAugmentation : 0;
418-
result |= element.isGetter ? _isGetter : 0;
419-
result |= element.isSetter ? _isSetter : 0;
418+
result |= element is GetterFragmentImpl ? _isGetter : 0;
419+
result |= element is SetterFragmentImpl ? _isSetter : 0;
420420
result |= element.hasImplicitReturnType ? _hasImplicitReturnType : 0;
421421
result |= element.isAbstract ? _isAbstract : 0;
422422
result |= element.isAsynchronous ? _isAsynchronous : 0;

pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ class InstanceMemberInferrer {
162162
return DynamicTypeImpl.instance;
163163
}
164164

165-
if (accessor != null && accessor.isGetter) {
165+
if (accessor != null && accessor is GetterFragmentImpl) {
166166
if (!accessor.hasImplicitReturnType) {
167167
return;
168168
}
@@ -202,7 +202,7 @@ class InstanceMemberInferrer {
202202
return;
203203
}
204204

205-
if (accessor != null && accessor.isSetter) {
205+
if (accessor != null && accessor is SetterFragmentImpl) {
206206
var parameters = accessor.parameters;
207207
if (parameters.isEmpty) {
208208
return;

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -444,17 +444,6 @@ extension PropertyAccessorElementImplExtension on PropertyAccessorFragmentImpl {
444444
}
445445
}
446446

447-
extension PropertyAccessorElementOrMemberExtension
448-
on PropertyAccessorElementOrMember {
449-
PropertyAccessorElement2OrMember get asElement2 {
450-
return switch (this) {
451-
PropertyAccessorFragmentImpl(:var element) => element,
452-
PropertyAccessorMember member => member,
453-
_ => throw UnsupportedError('Unsupported type: $runtimeType'),
454-
};
455-
}
456-
}
457-
458447
extension PropertyInducingElementExtension on PropertyInducingElement {
459448
bool get definesSetter {
460449
if (isConst) {

0 commit comments

Comments
 (0)