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