Skip to content

Commit 74b506f

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Remove FragmentImpl.kind, implement non-redirect ElementImpl.kind
Change-Id: Id6e44dee1d44d88cbcb065abff3fce25b8206f0f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/438322 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent addbdcb commit 74b506f

File tree

3 files changed

+29
-90
lines changed

3 files changed

+29
-90
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,14 @@ class ElementDisplayStringBuilder {
145145
_write('augment ');
146146
}
147147

148-
if (fragment.kind != ElementKind.SETTER) {
148+
if (fragment is! SetterFragmentImpl) {
149149
_writeType(fragment.returnType);
150150
_write(' ');
151151
}
152152

153153
_write(name);
154154

155-
if (fragment.kind != ElementKind.GETTER) {
155+
if (fragment is! GetterFragmentImpl) {
156156
_writeTypeParameters(fragment.typeParameters);
157157
_writeFormalParameters(
158158
fragment.parameters,

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

Lines changed: 25 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,9 @@ class ClassElementImpl extends InterfaceElementImpl implements ClassElement {
368368
@trackedIncludedIntoId
369369
bool get isValidMixin => firstFragment.isValidMixin;
370370

371+
@override
372+
ElementKind get kind => ElementKind.CLASS;
373+
371374
@override
372375
@trackedDirectlyDisable
373376
T? accept<T>(ElementVisitor2<T> visitor) {
@@ -667,9 +670,6 @@ class ClassFragmentImpl extends ClassOrMixinFragmentImpl
667670
return true;
668671
}
669672

670-
@override
671-
ElementKind get kind => ElementKind.CLASS;
672-
673673
@override
674674
ClassFragmentImpl? get nextFragment {
675675
return super.nextFragment as ClassFragmentImpl?;
@@ -1069,9 +1069,6 @@ class ConstructorFragmentImpl extends ExecutableFragmentImpl
10691069
return !isFactory;
10701070
}
10711071

1072-
@override
1073-
ElementKind get kind => ElementKind.CONSTRUCTOR;
1074-
10751072
@override
10761073
int get nameLength {
10771074
var nameEnd = this.nameEnd;
@@ -1351,9 +1348,6 @@ class DynamicFragmentImpl extends FragmentImpl implements TypeDefiningFragment {
13511348
@override
13521349
Null get enclosingFragment => null;
13531350

1354-
@override
1355-
ElementKind get kind => ElementKind.DYNAMIC;
1356-
13571351
@override
13581352
Null get library => null;
13591353

@@ -2008,6 +2002,9 @@ class EnumElementImpl extends InterfaceElementImpl implements EnumElement {
20082002
];
20092003
}
20102004

2005+
@override
2006+
ElementKind get kind => ElementKind.ENUM;
2007+
20112008
@override
20122009
T? accept<T>(ElementVisitor2<T> visitor) => visitor.visitEnumElement(this);
20132010

@@ -2038,9 +2035,6 @@ class EnumFragmentImpl extends InterfaceFragmentImpl implements EnumFragment {
20382035
return augmentedInternal;
20392036
}
20402037

2041-
@override
2042-
ElementKind get kind => ElementKind.ENUM;
2043-
20442038
@override
20452039
EnumFragmentImpl? get nextFragment => super.nextFragment as EnumFragmentImpl?;
20462040

@@ -2415,6 +2409,9 @@ class ExtensionElementImpl extends InstanceElementImpl
24152409
];
24162410
}
24172411

2412+
@override
2413+
ElementKind get kind => ElementKind.EXTENSION;
2414+
24182415
@override
24192416
DartType get thisType => extendedType;
24202417

@@ -2468,9 +2465,6 @@ class ExtensionFragmentImpl extends InstanceFragmentImpl
24682465
@override
24692466
bool get isSimplyBounded => true;
24702467

2471-
@override
2472-
ElementKind get kind => ElementKind.EXTENSION;
2473-
24742468
@override
24752469
MetadataImpl get metadata {
24762470
_ensureReadResolution();
@@ -2549,6 +2543,9 @@ class ExtensionTypeElementImpl extends InterfaceElementImpl
25492543
firstFragment.hasRepresentationSelfReference = value;
25502544
}
25512545

2546+
@override
2547+
ElementKind get kind => ElementKind.EXTENSION_TYPE;
2548+
25522549
@override
25532550
ConstructorElement get primaryConstructor {
25542551
return firstFragment.primaryConstructor.element;
@@ -2606,11 +2603,6 @@ class ExtensionTypeFragmentImpl extends InterfaceFragmentImpl
26062603
return augmentedInternal;
26072604
}
26082605

2609-
@override
2610-
ElementKind get kind {
2611-
return ElementKind.EXTENSION_TYPE;
2612-
}
2613-
26142606
@override
26152607
ExtensionTypeFragmentImpl? get nextFragment =>
26162608
super.nextFragment as ExtensionTypeFragmentImpl?;
@@ -2925,9 +2917,6 @@ class FieldFragmentImpl extends PropertyInducingFragmentImpl
29252917
element.setter2 == null;
29262918
}
29272919

2928-
@override
2929-
ElementKind get kind => ElementKind.FIELD;
2930-
29312920
@override
29322921
MetadataImpl get metadata {
29332922
_ensureReadResolution();
@@ -3331,9 +3320,6 @@ class FormalParameterFragmentImpl extends VariableFragmentImpl
33313320
/// Whether the parameter is a super formal parameter.
33323321
bool get isSuperFormal => false;
33333322

3334-
@override
3335-
ElementKind get kind => ElementKind.PARAMETER;
3336-
33373323
@override
33383324
LibraryElementImpl? get library {
33393325
var library = libraryFragment?.element;
@@ -3689,10 +3675,6 @@ abstract class FragmentImpl implements Fragment {
36893675
setModifier(Modifier.SYNTHETIC, isSynthetic);
36903676
}
36913677

3692-
/// The kind of element that this is.
3693-
// TODO(scheglov): remove it
3694-
ElementKind get kind;
3695-
36963678
LibraryElementImpl? get library;
36973679

36983680
/// If this target is associated with a library, return the source of the
@@ -3865,9 +3847,6 @@ sealed class FunctionFragmentImpl extends ExecutableFragmentImpl
38653847
// Local functions cannot be augmented.
38663848
throw UnsupportedError('This is not a fragment');
38673849
}
3868-
3869-
@override
3870-
ElementKind get kind => ElementKind.FUNCTION;
38713850
}
38723851

38733852
abstract class FunctionTypedElementImpl extends TypeParameterizedElementImpl
@@ -3946,7 +3925,7 @@ class GenericFunctionTypeElementImpl extends FunctionTypedElementImpl
39463925
bool get isSynthetic => _wrappedElement.isSynthetic;
39473926

39483927
@override
3949-
ElementKind get kind => _wrappedElement.kind;
3928+
ElementKind get kind => ElementKind.GENERIC_FUNCTION_TYPE;
39503929

39513930
@override
39523931
LibraryElementImpl get library => _wrappedElement.library;
@@ -4025,9 +4004,6 @@ class GenericFunctionTypeFragmentImpl extends _ExistingFragmentImpl
40254004
@override
40264005
List<FormalParameterFragmentImpl> get formalParameters => parameters;
40274006

4028-
@override
4029-
ElementKind get kind => ElementKind.GENERIC_FUNCTION_TYPE;
4030-
40314007
@override
40324008
String? get name2 => null;
40334009

@@ -4199,11 +4175,6 @@ class GetterFragmentImpl extends PropertyAccessorFragmentImpl
41994175

42004176
GetterFragmentImpl.forVariable(super.variable) : super.forVariable();
42014177

4202-
@override
4203-
ElementKind get kind {
4204-
return ElementKind.GETTER;
4205-
}
4206-
42074178
void addFragment(GetterFragmentImpl fragment) {
42084179
fragment.element = element;
42094180
fragment.previousFragment = this;
@@ -4320,9 +4291,6 @@ abstract class InstanceElementImpl extends ElementImpl
43204291
@override
43214292
bool get isSynthetic => firstFragment.isSynthetic;
43224293

4323-
@override
4324-
ElementKind get kind => firstFragment.kind;
4325-
43264294
@override
43274295
LibraryElementImpl get library => firstFragment.library;
43284296

@@ -5482,6 +5450,9 @@ class LabelElementImpl extends ElementImpl
54825450
/// or `default`).
54835451
bool get isOnSwitchMember => _wrappedElement.isOnSwitchMember;
54845452

5453+
@override
5454+
ElementKind get kind => ElementKind.LABEL;
5455+
54855456
@override
54865457
LibraryElement get library => _wrappedElement.library;
54875458

@@ -5543,9 +5514,6 @@ class LabelFragmentImpl extends FragmentImpl implements LabelFragment {
55435514
/// or `default`).
55445515
bool get isOnSwitchMember => _onSwitchMember;
55455516

5546-
@override
5547-
ElementKind get kind => ElementKind.LABEL;
5548-
55495517
@override
55505518
LibraryElementImpl get library {
55515519
return libraryFragment.element;
@@ -6332,9 +6300,6 @@ class LibraryFragmentImpl extends _ExistingFragmentImpl
63326300
.toList();
63336301
}
63346302

6335-
@override
6336-
ElementKind get kind => ElementKind.COMPILATION_UNIT;
6337-
63386303
/// The libraries exported by this unit.
63396304
List<LibraryExportImpl> get libraryExports {
63406305
_ensureReadResolution();
@@ -6782,6 +6747,9 @@ class LocalFunctionElementImpl extends ExecutableElementImpl
67826747
@override
67836748
bool get isStatic => _wrappedElement.isStatic;
67846749

6750+
@override
6751+
ElementKind get kind => ElementKind.FUNCTION;
6752+
67856753
@override
67866754
MetadataImpl get metadata => _wrappedElement.metadata;
67876755

@@ -6880,6 +6848,9 @@ class LocalVariableElementImpl extends PromotableElementImpl
68806848
@override
68816849
bool get isStatic => _wrappedElement.isStatic;
68826850

6851+
@override
6852+
ElementKind get kind => ElementKind.LOCAL_VARIABLE;
6853+
68836854
@override
68846855
LibraryElementImpl get library => _wrappedElement.library;
68856856

@@ -6951,9 +6922,6 @@ class LocalVariableFragmentImpl extends NonParameterVariableFragmentImpl
69516922
enclosingElement3 = value as FragmentImpl;
69526923
}
69536924

6954-
@override
6955-
ElementKind get kind => ElementKind.LOCAL_VARIABLE;
6956-
69576925
@override
69586926
LibraryFragmentImpl get libraryFragment => enclosingUnit;
69596927

@@ -7532,9 +7500,6 @@ class MethodFragmentImpl extends ExecutableFragmentImpl
75327500
first == 0x24);
75337501
}
75347502

7535-
@override
7536-
ElementKind get kind => ElementKind.METHOD;
7537-
75387503
@override
75397504
String? get lookupName {
75407505
if (name2 == '-' && formalParameters.isEmpty) {
@@ -7577,6 +7542,9 @@ class MixinElementImpl extends InterfaceElementImpl implements MixinElement {
75777542
@override
75787543
bool get isBase => firstFragment.isBase;
75797544

7545+
@override
7546+
ElementKind get kind => ElementKind.MIXIN;
7547+
75807548
@override
75817549
List<InterfaceTypeImpl> get superclassConstraints {
75827550
return [for (var fragment in fragments) ...fragment.superclassConstraints];
@@ -7632,9 +7600,6 @@ class MixinFragmentImpl extends ClassOrMixinFragmentImpl
76327600
return hasModifier(Modifier.BASE);
76337601
}
76347602

7635-
@override
7636-
ElementKind get kind => ElementKind.MIXIN;
7637-
76387603
@override
76397604
List<InterfaceTypeImpl> get mixins => const [];
76407605

@@ -8080,9 +8045,6 @@ class NeverFragmentImpl extends FragmentImpl implements TypeDefiningFragment {
80808045
@override
80818046
Null get enclosingFragment => null;
80828047

8083-
@override
8084-
ElementKind get kind => ElementKind.NEVER;
8085-
80868048
@override
80878049
Null get library => null;
80888050

@@ -8827,11 +8789,6 @@ class SetterFragmentImpl extends PropertyAccessorFragmentImpl
88278789

88288790
SetterFragmentImpl.forVariable(super.variable) : super.forVariable();
88298791

8830-
@override
8831-
ElementKind get kind {
8832-
return ElementKind.SETTER;
8833-
}
8834-
88358792
@override
88368793
String? get lookupName {
88378794
if (name2 case var name?) {
@@ -9271,9 +9228,6 @@ class TopLevelVariableFragmentImpl extends PropertyInducingFragmentImpl
92719228
@override
92729229
bool get isStatic => true;
92739230

9274-
@override
9275-
ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE;
9276-
92779231
@override
92789232
LibraryFragmentImpl get libraryFragment => enclosingUnit;
92799233

@@ -9606,15 +9560,6 @@ class TypeAliasFragmentImpl extends _ExistingFragmentImpl
96069560
setModifier(Modifier.SIMPLY_BOUNDED, isSimplyBounded);
96079561
}
96089562

9609-
@override
9610-
ElementKind get kind {
9611-
if (isNonFunctionTypeAliasesEnabled) {
9612-
return ElementKind.TYPE_ALIAS;
9613-
} else {
9614-
return ElementKind.FUNCTION_TYPE_ALIAS;
9615-
}
9616-
}
9617-
96189563
@override
96199564
MetadataImpl get metadata {
96209565
_ensureReadResolution();
@@ -9843,9 +9788,6 @@ class TypeParameterFragmentImpl extends FragmentImpl
98439788
return _variance == null;
98449789
}
98459790

9846-
@override
9847-
ElementKind get kind => ElementKind.TYPE_PARAMETER;
9848-
98499791
@override
98509792
LibraryElementImpl? get library {
98519793
var library = libraryFragment?.element;
@@ -10205,9 +10147,6 @@ mixin WrappedElementMixin implements ElementImpl {
1020510147
@override
1020610148
bool get isSynthetic => _wrappedElement.isSynthetic;
1020710149

10208-
@override
10209-
ElementKind get kind => _wrappedElement.kind;
10210-
1021110150
@override
1021210151
String? get name3 => _wrappedElement.name2;
1021310152

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ class InstanceMemberInferrer {
4545
ExecutableFragmentImpl element,
4646
List<ExecutableFragmentImpl> elements,
4747
) {
48-
var elementKind = element.kind;
48+
var elementKind = element.element.kind;
4949
for (int i = 0; i < elements.length; i++) {
50-
if (elements[i].kind != elementKind) {
50+
if (elements[i].element.kind != elementKind) {
5151
return false;
5252
}
5353
}

0 commit comments

Comments
 (0)