[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;
 }