[element model] migrate `recursive_getters`

Bug: https://github.com/dart-lang/linter/issues/5099
Change-Id: I1555e7088a67037513a10600443c9d8385a402e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/390120
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/linter/lib/src/rules/recursive_getters.dart b/pkg/linter/lib/src/rules/recursive_getters.dart
index a7ce0c0..d2c0a3e 100644
--- a/pkg/linter/lib/src/rules/recursive_getters.dart
+++ b/pkg/linter/lib/src/rules/recursive_getters.dart
@@ -4,7 +4,7 @@
 
 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 '../analyzer.dart';
 
@@ -31,11 +31,11 @@
 
 class _BodyVisitor extends RecursiveAstVisitor<void> {
   final LintRule rule;
-  final ExecutableElement element;
+  final ExecutableElement2 element;
   _BodyVisitor(this.element, this.rule);
 
   bool isSelfReference(SimpleIdentifier node) {
-    if (node.staticElement != element) return false;
+    if (node.element != element) return false;
     var parent = node.parent;
     if (parent is PrefixedIdentifier) return false;
     if (parent is PropertyAccess && parent.target is! ThisExpression) {
@@ -76,7 +76,7 @@
     // getters have null arguments, methods have parameters, could be empty.
     if (node.functionExpression.parameters != null) return;
 
-    _verifyElement(node.functionExpression, node.declaredElement);
+    _verifyElement(node.functionExpression, node.declaredFragment?.element);
   }
 
   @override
@@ -84,10 +84,10 @@
     // getters have null arguments, methods have parameters, could be empty.
     if (node.parameters != null) return;
 
-    _verifyElement(node.body, node.declaredElement);
+    _verifyElement(node.body, node.declaredFragment?.element);
   }
 
-  void _verifyElement(AstNode node, ExecutableElement? element) {
+  void _verifyElement(AstNode node, ExecutableElement2? element) {
     if (element == null) return;
     node.accept(_BodyVisitor(element, rule));
   }