44
55import 'package:analyzer/dart/ast/ast.dart';
66import 'package:analyzer/dart/ast/visitor.dart';
7- import 'package:analyzer/dart/element/element .dart';
7+ import 'package:analyzer/dart/element/element2 .dart';
88
99import '../analyzer.dart';
1010import '../extensions.dart';
@@ -32,15 +32,17 @@ class AvoidFieldInitializersInConstClasses extends LintRule {
3232}
3333
3434class HasParameterReferenceVisitor extends RecursiveAstVisitor<void> {
35- Iterable<ParameterElement ?> parameters;
35+ Iterable<FormalParameterElement ?> parameters;
3636
3737 bool useParameter = false;
3838
39- HasParameterReferenceVisitor(this.parameters);
39+ HasParameterReferenceVisitor(
40+ Iterable<FormalParameterFragment?> fragmentParameters)
41+ : parameters = fragmentParameters.map((p) => p?.element);
4042
4143 @override
4244 void visitSimpleIdentifier(SimpleIdentifier node) {
43- if (parameters.contains(node.staticElement )) {
45+ if (parameters.contains(node.element )) {
4446 useParameter = true;
4547 } else {
4648 super.visitSimpleIdentifier(node);
@@ -61,14 +63,14 @@ class _Visitor extends SimpleAstVisitor<void> {
6163 var classDecl = declaration.thisOrAncestorOfType<ClassDeclaration>();
6264 if (classDecl == null) return;
6365
64- var element = classDecl.declaredElement ;
66+ var element = classDecl.declaredFragment?.element ;
6567 if (element == null) return;
6668
6769 // no lint if several constructors
68- if (element.allConstructors .length > 1) return;
70+ if (element.constructors2 .length > 1) return;
6971
7072 var visitor = HasParameterReferenceVisitor(
71- declaration.parameters.parameterElements );
73+ declaration.parameters.parameterFragments );
7274 node.expression.accept(visitor);
7375 if (!visitor.useParameter) {
7476 rule.reportLint(node);
@@ -84,10 +86,10 @@ class _Visitor extends SimpleAstVisitor<void> {
8486 // only const class
8587 var parent = node.parent;
8688 if (parent is ClassDeclaration) {
87- var declaredElement = parent.declaredElement ;
89+ var declaredElement = parent.declaredFragment?.element ;
8890 if (declaredElement == null) return;
8991
90- if (declaredElement.allConstructors .every((e) => !e.isConst)) {
92+ if (declaredElement.constructors2 .every((e) => !e.isConst)) {
9193 return;
9294 }
9395 for (var variable in node.fields.variables) {
0 commit comments