[element model] migrate `unnecessary_nullable_for_final_variable_declarations`

Bug: https://github.com/dart-lang/linter/issues/5099
Change-Id: I6f6c34b27f46067ed474195a0716a0e474da68c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/389222
Auto-Submit: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/linter/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart b/pkg/linter/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart
index 875e5b5..5f7bedd 100644
--- a/pkg/linter/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart
+++ b/pkg/linter/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart
@@ -43,7 +43,7 @@
 
   void check(AstNode node) {
     if (node is! DeclaredVariablePattern) return;
-    var type = node.declaredElement?.type;
+    var type = node.declaredElement2?.type;
     if (type == null) return;
     if (type is DynamicType) return;
     var valueType = node.matchedValueType;
@@ -89,17 +89,14 @@
   }
 
   void _visit(VariableDeclaration variable) {
-    if (!variable.isFinal && !variable.isConst) {
-      return;
-    }
-    if (variable.isSynthetic) {
-      return;
-    }
+    if (!variable.isFinal && !variable.isConst) return;
+    if (variable.isSynthetic) return;
+
     var initializerType = variable.initializer?.staticType;
-    if (initializerType == null) {
-      return;
-    }
-    var declaredElement = variable.declaredElement;
+    if (initializerType == null) return;
+
+    var declaredElement =
+        variable.declaredElement2 ?? variable.declaredFragment?.element;
     if (declaredElement == null || declaredElement.type is DynamicType) {
       return;
     }