Skip to content

Commit c6daa6a

Browse files
pqCommit Queue
authored andcommitted
[element model] cleanup extensions
Change-Id: If51dec5ff014d404fd0ccd7bb62c155dc05ece26 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/398601 Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Phil Quitslund <[email protected]> Auto-Submit: Phil Quitslund <[email protected]>
1 parent a013505 commit c6daa6a

File tree

4 files changed

+11
-106
lines changed

4 files changed

+11
-106
lines changed

pkg/linter/lib/src/extensions.dart

Lines changed: 8 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -155,32 +155,7 @@ extension BlockExtension on Block {
155155
}
156156
}
157157

158-
extension ClassElementExtension on ClassElement {
159-
/// Get all accessors, including merged augmentations.
160-
List<PropertyAccessorElement> get allAccessors => augmented.accessors;
161-
162-
/// Get all constructors, including merged augmentations.
163-
List<ConstructorElement> get allConstructors => augmented.constructors;
164-
165-
/// Get all fields, including merged augmentations.
166-
List<FieldElement> get allFields => augmented.fields;
167-
168-
/// Get all interfaces, including merged augmentations.
169-
List<InterfaceType> get allInterfaces => augmented.interfaces;
170-
171-
/// Get all methods, including merged augmentations.
172-
List<MethodElement> get allMethods => augmented.methods;
173-
174-
/// Get all mixins, including merged augmentations.
175-
List<InterfaceType> get allMixins => augmented.mixins;
176-
177-
/// Returns whether this class is exactly [otherName] declared in
178-
/// [otherLibrary].
179-
bool isClass(String otherName, String otherLibrary) =>
180-
name == otherName && library.name == otherLibrary;
181-
}
182-
183-
extension ClassElementExtension2 on ClassElement2 {
158+
extension ClassElement2Extension on ClassElement2 {
184159
bool get hasImmutableAnnotation {
185160
var inheritedAndSelfElements = <InterfaceElement2>[
186161
...allSupertypes.map((t) => t.element3),
@@ -273,6 +248,12 @@ extension ClassElementExtension2 on ClassElement2 {
273248
bool isEnumLikeClass() => asEnumLikeClass() != null;
274249
}
275250

251+
// TODO(pq): remove when internal migration is complete.
252+
extension ClassElementExtension on ClassElement {
253+
/// Get all constructors, including merged augmentations.
254+
List<ConstructorElement> get allConstructors => augmented.constructors;
255+
}
256+
276257
extension ClassMemberListExtension on List<ClassMember> {
277258
MethodDeclaration? getMethod(String name) => whereType<MethodDeclaration>()
278259
.firstWhereOrNull((node) => node.name.lexeme == name);
@@ -523,27 +504,7 @@ extension FunctionBodyExtension on FunctionBody? {
523504
extension InhertanceManager3Extension on InheritanceManager3 {
524505
/// Returns the class member that is overridden by [member], if there is one,
525506
/// as defined by [getInherited].
526-
ExecutableElement? overriddenMember(Element? member) {
527-
if (member == null) {
528-
return null;
529-
}
530-
531-
var interfaceElement = member.thisOrAncestorOfType<InterfaceElement>();
532-
if (interfaceElement == null) {
533-
return null;
534-
}
535-
var name = member.name;
536-
if (name == null) {
537-
return null;
538-
}
539-
540-
var libraryUri = interfaceElement.library.source.uri;
541-
return getInherited(interfaceElement.thisType, Name(libraryUri, name));
542-
}
543-
544-
/// Returns the class member that is overridden by [member], if there is one,
545-
/// as defined by [getInherited].
546-
ExecutableElement2? overriddenMember2(Element2? member) {
507+
ExecutableElement2? overriddenMember(Element2? member) {
547508
ExecutableElement2? executable;
548509
switch (member) {
549510
case FieldElement2():
@@ -649,62 +610,6 @@ extension MethodDeclarationExtension on MethodDeclaration {
649610
}
650611
}
651612

652-
PropertyAccessorElement? lookUpGetter() {
653-
var declaredElement = this.declaredElement;
654-
if (declaredElement == null) {
655-
return null;
656-
}
657-
var parent = declaredElement.enclosingElement3;
658-
if (parent is InterfaceElement) {
659-
return parent.augmented
660-
.lookUpGetter(name: name.lexeme, library: declaredElement.library);
661-
}
662-
if (parent is ExtensionElement) {
663-
return parent.getGetter(name.lexeme);
664-
}
665-
return null;
666-
}
667-
668-
PropertyAccessorElement? lookUpInheritedConcreteGetter() {
669-
var declaredElement = this.declaredElement;
670-
if (declaredElement == null) {
671-
return null;
672-
}
673-
var parent = declaredElement.enclosingElement3;
674-
if (parent is InterfaceElement) {
675-
return parent.lookUpInheritedConcreteGetter(
676-
name.lexeme, declaredElement.library);
677-
}
678-
// Extensions don't inherit.
679-
return null;
680-
}
681-
682-
MethodElement? lookUpInheritedConcreteMethod() {
683-
var declaredElement = this.declaredElement;
684-
if (declaredElement != null) {
685-
var parent = declaredElement.enclosingElement3;
686-
if (parent is InterfaceElement) {
687-
return parent.lookUpInheritedConcreteMethod(
688-
name.lexeme, declaredElement.library);
689-
}
690-
}
691-
// Extensions don't inherit.
692-
return null;
693-
}
694-
695-
PropertyAccessorElement? lookUpInheritedConcreteSetter() {
696-
var declaredElement = this.declaredElement;
697-
if (declaredElement != null) {
698-
var parent = declaredElement.enclosingElement3;
699-
if (parent is InterfaceElement) {
700-
return parent.lookUpInheritedConcreteSetter(
701-
name.lexeme, declaredElement.library);
702-
}
703-
}
704-
// Extensions don't inherit.
705-
return null;
706-
}
707-
708613
MethodElement? lookUpInheritedMethod() {
709614
var declaredElement = this.declaredElement;
710615
if (declaredElement != null) {

pkg/linter/lib/src/rules/annotate_overrides.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class _Visitor extends SimpleAstVisitor<void> {
4141
if (element == null) return;
4242
if (element case Annotatable a when a.metadata2.hasOverride) return;
4343

44-
var member = context.inheritanceManager.overriddenMember2(element);
44+
var member = context.inheritanceManager.overriddenMember(element);
4545
if (member != null) {
4646
rule.reportLintForToken(target, arguments: [member.name3!]);
4747
}

pkg/linter/lib/src/rules/prefer_void_to_null.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class _Visitor extends SimpleAstVisitor<void> {
4646
if (parent.returnType?.offset != node.offset) return false;
4747

4848
var member = context.inheritanceManager
49-
.overriddenMember2(parent.declaredFragment?.element);
49+
.overriddenMember(parent.declaredFragment?.element);
5050
if (member == null) return false;
5151

5252
var returnType = member.returnType;

pkg/linter/lib/src/rules/public_member_api_docs.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class _Visitor extends SimpleAstVisitor<void> {
112112
/// Whether [node] overrides some other member.
113113
bool isOverridingMember(Declaration node) =>
114114
context.inheritanceManager
115-
.overriddenMember2(node.declaredFragment?.element) !=
115+
.overriddenMember(node.declaredFragment?.element) !=
116116
null;
117117

118118
@override

0 commit comments

Comments
 (0)