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 <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/display_string_builder.dart b/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
index f8f8d29..99eb256 100644
--- a/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
+++ b/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
@@ -145,14 +145,14 @@
_write('augment ');
}
- if (fragment.kind != ElementKind.SETTER) {
+ if (fragment is! SetterFragmentImpl) {
_writeType(fragment.returnType);
_write(' ');
}
_write(name);
- if (fragment.kind != ElementKind.GETTER) {
+ if (fragment is! GetterFragmentImpl) {
_writeTypeParameters(fragment.typeParameters);
_writeFormalParameters(
fragment.parameters,
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index c087666..9bd4c84 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -369,6 +369,9 @@
bool get isValidMixin => firstFragment.isValidMixin;
@override
+ ElementKind get kind => ElementKind.CLASS;
+
+ @override
@trackedDirectlyDisable
T? accept<T>(ElementVisitor2<T> visitor) {
globalResultRequirements?.record_disable(this, 'accept2');
@@ -668,9 +671,6 @@
}
@override
- ElementKind get kind => ElementKind.CLASS;
-
- @override
ClassFragmentImpl? get nextFragment {
return super.nextFragment as ClassFragmentImpl?;
}
@@ -1070,9 +1070,6 @@
}
@override
- ElementKind get kind => ElementKind.CONSTRUCTOR;
-
- @override
int get nameLength {
var nameEnd = this.nameEnd;
if (nameEnd == null) {
@@ -1352,9 +1349,6 @@
Null get enclosingFragment => null;
@override
- ElementKind get kind => ElementKind.DYNAMIC;
-
- @override
Null get library => null;
@override
@@ -2009,6 +2003,9 @@
}
@override
+ ElementKind get kind => ElementKind.ENUM;
+
+ @override
T? accept<T>(ElementVisitor2<T> visitor) => visitor.visitEnumElement(this);
@Deprecated('Use accept instead')
@@ -2039,9 +2036,6 @@
}
@override
- ElementKind get kind => ElementKind.ENUM;
-
- @override
EnumFragmentImpl? get nextFragment => super.nextFragment as EnumFragmentImpl?;
@override
@@ -2416,6 +2410,9 @@
}
@override
+ ElementKind get kind => ElementKind.EXTENSION;
+
+ @override
DartType get thisType => extendedType;
@override
@@ -2469,9 +2466,6 @@
bool get isSimplyBounded => true;
@override
- ElementKind get kind => ElementKind.EXTENSION;
-
- @override
MetadataImpl get metadata {
_ensureReadResolution();
return super.metadata;
@@ -2550,6 +2544,9 @@
}
@override
+ ElementKind get kind => ElementKind.EXTENSION_TYPE;
+
+ @override
ConstructorElement get primaryConstructor {
return firstFragment.primaryConstructor.element;
}
@@ -2607,11 +2604,6 @@
}
@override
- ElementKind get kind {
- return ElementKind.EXTENSION_TYPE;
- }
-
- @override
ExtensionTypeFragmentImpl? get nextFragment =>
super.nextFragment as ExtensionTypeFragmentImpl?;
@@ -2926,9 +2918,6 @@
}
@override
- ElementKind get kind => ElementKind.FIELD;
-
- @override
MetadataImpl get metadata {
_ensureReadResolution();
return super.metadata;
@@ -3332,9 +3321,6 @@
bool get isSuperFormal => false;
@override
- ElementKind get kind => ElementKind.PARAMETER;
-
- @override
LibraryElementImpl? get library {
var library = libraryFragment?.element;
return library as LibraryElementImpl?;
@@ -3689,10 +3675,6 @@
setModifier(Modifier.SYNTHETIC, isSynthetic);
}
- /// The kind of element that this is.
- // TODO(scheglov): remove it
- ElementKind get kind;
-
LibraryElementImpl? get library;
/// If this target is associated with a library, return the source of the
@@ -3865,9 +3847,6 @@
// Local functions cannot be augmented.
throw UnsupportedError('This is not a fragment');
}
-
- @override
- ElementKind get kind => ElementKind.FUNCTION;
}
abstract class FunctionTypedElementImpl extends TypeParameterizedElementImpl
@@ -3946,7 +3925,7 @@
bool get isSynthetic => _wrappedElement.isSynthetic;
@override
- ElementKind get kind => _wrappedElement.kind;
+ ElementKind get kind => ElementKind.GENERIC_FUNCTION_TYPE;
@override
LibraryElementImpl get library => _wrappedElement.library;
@@ -4026,9 +4005,6 @@
List<FormalParameterFragmentImpl> get formalParameters => parameters;
@override
- ElementKind get kind => ElementKind.GENERIC_FUNCTION_TYPE;
-
- @override
String? get name2 => null;
@override
@@ -4199,11 +4175,6 @@
GetterFragmentImpl.forVariable(super.variable) : super.forVariable();
- @override
- ElementKind get kind {
- return ElementKind.GETTER;
- }
-
void addFragment(GetterFragmentImpl fragment) {
fragment.element = element;
fragment.previousFragment = this;
@@ -4321,9 +4292,6 @@
bool get isSynthetic => firstFragment.isSynthetic;
@override
- ElementKind get kind => firstFragment.kind;
-
- @override
LibraryElementImpl get library => firstFragment.library;
@Deprecated('Use library instead')
@@ -5483,6 +5451,9 @@
bool get isOnSwitchMember => _wrappedElement.isOnSwitchMember;
@override
+ ElementKind get kind => ElementKind.LABEL;
+
+ @override
LibraryElement get library => _wrappedElement.library;
@Deprecated('Use library instead')
@@ -5544,9 +5515,6 @@
bool get isOnSwitchMember => _onSwitchMember;
@override
- ElementKind get kind => ElementKind.LABEL;
-
- @override
LibraryElementImpl get library {
return libraryFragment.element;
}
@@ -6332,9 +6300,6 @@
.toList();
}
- @override
- ElementKind get kind => ElementKind.COMPILATION_UNIT;
-
/// The libraries exported by this unit.
List<LibraryExportImpl> get libraryExports {
_ensureReadResolution();
@@ -6783,6 +6748,9 @@
bool get isStatic => _wrappedElement.isStatic;
@override
+ ElementKind get kind => ElementKind.FUNCTION;
+
+ @override
MetadataImpl get metadata => _wrappedElement.metadata;
@Deprecated('Use metadata instead')
@@ -6881,6 +6849,9 @@
bool get isStatic => _wrappedElement.isStatic;
@override
+ ElementKind get kind => ElementKind.LOCAL_VARIABLE;
+
+ @override
LibraryElementImpl get library => _wrappedElement.library;
@Deprecated('Use library instead')
@@ -6952,9 +6923,6 @@
}
@override
- ElementKind get kind => ElementKind.LOCAL_VARIABLE;
-
- @override
LibraryFragmentImpl get libraryFragment => enclosingUnit;
@Deprecated('Use metadata instead')
@@ -7533,9 +7501,6 @@
}
@override
- ElementKind get kind => ElementKind.METHOD;
-
- @override
String? get lookupName {
if (name2 == '-' && formalParameters.isEmpty) {
return 'unary-';
@@ -7578,6 +7543,9 @@
bool get isBase => firstFragment.isBase;
@override
+ ElementKind get kind => ElementKind.MIXIN;
+
+ @override
List<InterfaceTypeImpl> get superclassConstraints {
return [for (var fragment in fragments) ...fragment.superclassConstraints];
}
@@ -7633,9 +7601,6 @@
}
@override
- ElementKind get kind => ElementKind.MIXIN;
-
- @override
List<InterfaceTypeImpl> get mixins => const [];
@override
@@ -8081,9 +8046,6 @@
Null get enclosingFragment => null;
@override
- ElementKind get kind => ElementKind.NEVER;
-
- @override
Null get library => null;
@override
@@ -8828,11 +8790,6 @@
SetterFragmentImpl.forVariable(super.variable) : super.forVariable();
@override
- ElementKind get kind {
- return ElementKind.SETTER;
- }
-
- @override
String? get lookupName {
if (name2 case var name?) {
return '$name=';
@@ -9272,9 +9229,6 @@
bool get isStatic => true;
@override
- ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE;
-
- @override
LibraryFragmentImpl get libraryFragment => enclosingUnit;
@override
@@ -9607,15 +9561,6 @@
}
@override
- ElementKind get kind {
- if (isNonFunctionTypeAliasesEnabled) {
- return ElementKind.TYPE_ALIAS;
- } else {
- return ElementKind.FUNCTION_TYPE_ALIAS;
- }
- }
-
- @override
MetadataImpl get metadata {
_ensureReadResolution();
return super.metadata;
@@ -9844,9 +9789,6 @@
}
@override
- ElementKind get kind => ElementKind.TYPE_PARAMETER;
-
- @override
LibraryElementImpl? get library {
var library = libraryFragment?.element;
return library as LibraryElementImpl?;
@@ -10206,9 +10148,6 @@
bool get isSynthetic => _wrappedElement.isSynthetic;
@override
- ElementKind get kind => _wrappedElement.kind;
-
- @override
String? get name3 => _wrappedElement.name2;
FragmentImpl get _wrappedElement;
diff --git a/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart b/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart
index f28c760..953203e 100644
--- a/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart
+++ b/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart
@@ -45,9 +45,9 @@
ExecutableFragmentImpl element,
List<ExecutableFragmentImpl> elements,
) {
- var elementKind = element.kind;
+ var elementKind = element.element.kind;
for (int i = 0; i < elements.length; i++) {
- if (elements[i].kind != elementKind) {
+ if (elements[i].element.kind != elementKind) {
return false;
}
}