Elements. Migrate AddTypeAnnotation.

Change-Id: Ic613ceb4dc84be4136faf926100563da444d8ac7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/386735
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/analysis_server/analyzer_use_new_elements.txt b/pkg/analysis_server/analyzer_use_new_elements.txt
index 03c9f70..3d36bb3 100644
--- a/pkg/analysis_server/analyzer_use_new_elements.txt
+++ b/pkg/analysis_server/analyzer_use_new_elements.txt
@@ -226,6 +226,7 @@
 lib/src/services/correction/dart/add_super_parameter.dart
 lib/src/services/correction/dart/add_switch_case_break.dart
 lib/src/services/correction/dart/add_trailing_comma.dart
+lib/src/services/correction/dart/add_type_annotation.dart
 lib/src/services/correction/dart/assign_to_local_variable.dart
 lib/src/services/correction/dart/change_argument_name.dart
 lib/src/services/correction/dart/change_to_nearest_precise_value.dart
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_type_annotation.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_type_annotation.dart
index a442da2..26ebbf0 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_type_annotation.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_type_annotation.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server_plugin/edit/dart/correction_producer.dart';
 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 'package:analyzer/dart/element/type_system.dart';
 import 'package:analyzer/src/utilities/extensions/ast.dart';
@@ -106,7 +106,7 @@
     if (declaredIdentifier.type != null) {
       return;
     }
-    var type = declaredIdentifier.declaredElement!.type;
+    var type = declaredIdentifier.declaredElement2!.type;
     if (type is! InterfaceType &&
         type is! FunctionType &&
         type is! RecordType) {
@@ -128,7 +128,7 @@
       return;
     }
     // Prepare the type.
-    var type = parameter.declaredElement!.type;
+    var type = parameter.declaredFragment!.element.type;
     // TODO(scheglov): If the parameter is in a method declaration, and if the
     // method overrides a method that has a type for the corresponding
     // parameter, it would be nice to copy down the type from the overridden
@@ -207,8 +207,8 @@
     if (statement is! VariableDeclarationStatement || block is! Block) {
       return null;
     }
-    var element = variable.declaredElement;
-    if (element is! LocalVariableElement) {
+    var element = variable.declaredElement2;
+    if (element == null) {
       return null;
     }
     var statements = block.statements;
@@ -225,7 +225,7 @@
   /// The type system used to compute the best type.
   final TypeSystem typeSystem;
 
-  final LocalVariableElement variable;
+  final LocalVariableElement2 variable;
 
   /// The types that are assigned to the variable.
   final Set<DartType> assignedTypes = {};
@@ -247,8 +247,7 @@
   @override
   void visitAssignmentExpression(AssignmentExpression node) {
     var leftHandSide = node.leftHandSide;
-    if (leftHandSide is SimpleIdentifier &&
-        leftHandSide.staticElement == variable) {
+    if (leftHandSide is SimpleIdentifier && leftHandSide.element == variable) {
       var type = node.rightHandSide.staticType;
       if (type != null) {
         assignedTypes.add(type);