[element model] migrate `no_runtimeType_toString`
Bug: https://github.com/dart-lang/linter/issues/5099
Change-Id: Ia03adc1fdac98eff925cac5e80bc54a607955bcb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/388057
Auto-Submit: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/linter/lib/src/rules/no_runtimeType_toString.dart b/pkg/linter/lib/src/rules/no_runtimeType_toString.dart
index 358f7b8..814c250 100644
--- a/pkg/linter/lib/src/rules/no_runtimeType_toString.dart
+++ b/pkg/linter/lib/src/rules/no_runtimeType_toString.dart
@@ -5,7 +5,7 @@
// ignore_for_file: file_names
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
-import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/dart/element/type.dart';
import '../analyzer.dart';
@@ -62,12 +62,12 @@
if (n is MixinDeclaration) return true;
if (n is ClassDeclaration && n.abstractKeyword != null) return true;
if (n is ExtensionDeclaration) {
- var declaredElement = n.declaredElement;
+ var declaredElement = n.declaredFragment?.element;
if (declaredElement != null) {
var extendedType = declaredElement.extendedType;
if (extendedType is InterfaceType) {
- var extendedElement = extendedType.element;
- return !(extendedElement is ClassElement &&
+ var extendedElement = extendedType.element3;
+ return !(extendedElement is ClassElement2 &&
!extendedElement.isAbstract);
}
}
@@ -83,5 +83,5 @@
target.propertyName.name == 'runtimeType' ||
target is SimpleIdentifier &&
target.name == 'runtimeType' &&
- target.staticElement is PropertyAccessorElement;
+ target.element is GetterElement;
}