[element model] migrate `matching_super_parameters`

Bug: https://github.com/dart-lang/linter/issues/5099
Change-Id: I39c000f58ee8203d5473c6d0d6f9bacaa2c1a851
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/391564
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/analyzer_use_new_elements.txt b/pkg/linter/analyzer_use_new_elements.txt
index 33302ee..17aff71 100644
--- a/pkg/linter/analyzer_use_new_elements.txt
+++ b/pkg/linter/analyzer_use_new_elements.txt
@@ -86,6 +86,7 @@
 lib/src/rules/lines_longer_than_80_chars.dart
 lib/src/rules/list_remove_unrelated_type.dart
 lib/src/rules/literal_only_boolean_expressions.dart
+lib/src/rules/matching_super_parameters.dart
 lib/src/rules/missing_code_block_language_in_doc_comment.dart
 lib/src/rules/missing_whitespace_between_adjacent_strings.dart
 lib/src/rules/no_adjacent_strings_in_list.dart
diff --git a/pkg/linter/lib/src/rules/matching_super_parameters.dart b/pkg/linter/lib/src/rules/matching_super_parameters.dart
index 2725496..d9dbc7d 100644
--- a/pkg/linter/lib/src/rules/matching_super_parameters.dart
+++ b/pkg/linter/lib/src/rules/matching_super_parameters.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';
 
@@ -47,19 +47,18 @@
     }
     var superInvocation =
         node.initializers.whereType<SuperConstructorInvocation>().firstOrNull;
-    var superConstructor = superInvocation?.staticElement;
+    var superConstructor = superInvocation?.element;
     if (superConstructor == null) {
       var class_ = node.parent;
       if (class_ is ClassDeclaration) {
-        superConstructor =
-            class_.declaredElement?.supertype?.element.unnamedConstructor;
+        superConstructor = class_
+            .declaredFragment?.element.supertype?.element3.unnamedConstructor2;
       }
     }
-    if (superConstructor is! ConstructorElement) {
-      return;
-    }
+    if (superConstructor is! ConstructorElement2) return;
+
     var positionalParametersOfSuper =
-        superConstructor.parameters.where((p) => p.isPositional).toList();
+        superConstructor.formalParameters.where((p) => p.isPositional).toList();
     if (positionalParametersOfSuper.length < positionalSuperParameters.length) {
       // More positional parameters are passed to super constructor than it
       // has positional parameters, an error.
@@ -68,8 +67,9 @@
     for (var i = 0; i < positionalSuperParameters.length; i++) {
       var superParameter = positionalSuperParameters[i];
       var superParameterName = superParameter.name.lexeme;
-      var parameterOfSuperName = positionalParametersOfSuper[i].name;
-      if (superParameterName != parameterOfSuperName) {
+      var parameterOfSuperName = positionalParametersOfSuper[i].name3;
+      if (parameterOfSuperName != null &&
+          superParameterName != parameterOfSuperName) {
         rule.reportLint(superParameter,
             arguments: [superParameterName, parameterOfSuperName]);
       }