Skip to content

Commit a452632

Browse files
pqCommit Queue
authored andcommitted
[element model] migrate avoid_init_to_null
Bug: https://github.com/dart-lang/linter/issues/5099 Change-Id: I587895b2115cd9e6da0c566a115438e1c506669b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/392481 Auto-Submit: Phil Quitslund <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]>
1 parent 702ccbc commit a452632

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

pkg/linter/lib/src/rules/avoid_init_to_null.dart

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import 'package:analyzer/dart/ast/ast.dart';
66
import 'package:analyzer/dart/ast/visitor.dart';
7-
import 'package:analyzer/dart/element/element.dart';
7+
import 'package:analyzer/dart/element/element2.dart';
88
import 'package:analyzer/dart/element/type.dart';
99

1010
import '../analyzer.dart';
@@ -41,12 +41,13 @@ class _Visitor extends SimpleAstVisitor<void> {
4141

4242
@override
4343
void visitDefaultFormalParameter(DefaultFormalParameter node) {
44-
var declaredElement = node.declaredElement;
44+
var declaredElement = node.declaredFragment?.element;
4545
if (declaredElement == null) return;
4646

47-
if (declaredElement is SuperFormalParameterElement) {
48-
var superConstructorParameter = declaredElement.superConstructorParameter;
49-
if (superConstructorParameter is! ParameterElement) return;
47+
if (declaredElement is SuperFormalParameterElement2) {
48+
var superConstructorParameter =
49+
declaredElement.superConstructorParameter2;
50+
if (superConstructorParameter is! FormalParameterElement) return;
5051
var defaultValue = superConstructorParameter.defaultValueCode ?? 'null';
5152
if (defaultValue != 'null') return;
5253
}
@@ -58,7 +59,8 @@ class _Visitor extends SimpleAstVisitor<void> {
5859

5960
@override
6061
void visitVariableDeclaration(VariableDeclaration node) {
61-
var declaredElement = node.declaredElement;
62+
var declaredElement =
63+
node.declaredElement2 ?? node.declaredFragment?.element;
6264
if (declaredElement != null &&
6365
!node.isConst &&
6466
!node.isFinal &&

pkg/linter/test/rules/avoid_init_to_null_test.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,17 @@ class AvoidInitToNullSuperFormalsTest extends LintRuleTest {
1818
@override
1919
String get lintRule => LintNames.avoid_init_to_null;
2020

21+
test_forLoop() async {
22+
await assertDiagnostics(r'''
23+
void f() {
24+
for (var i = null; i != null; i++) {
25+
}
26+
}
27+
''', [
28+
lint(22, 8),
29+
]);
30+
}
31+
2132
test_nullableStringInit() async {
2233
await assertDiagnostics(r'''
2334
class A {

0 commit comments

Comments
 (0)