File tree 3 files changed +21
-6
lines changed
3 files changed +21
-6
lines changed Original file line number Diff line number Diff line change @@ -140,6 +140,13 @@ class _Visitor extends SimpleAstVisitor<void> {
140
140
return ;
141
141
}
142
142
143
+ if (parent is VariableDeclarationList &&
144
+ node == parent.type &&
145
+ parent.parent is ! FieldDeclaration ) {
146
+ // We should not recommend to use `void` for local or top-level variables.
147
+ return ;
148
+ }
149
+
143
150
// <Null>[] or <Null, Null>{}
144
151
if (parent is TypeArgumentList ) {
145
152
var literal = parent.parent;
Original file line number Diff line number Diff line change @@ -35,6 +35,20 @@ void f(int a) {
35
35
case var _ as Null:
36
36
}
37
37
}
38
+ ''' );
39
+ }
40
+
41
+ test_localVariable () async {
42
+ await assertNoDiagnostics (r'''
43
+ void f() {
44
+ Null _;
45
+ }
46
+ ''' );
47
+ }
48
+
49
+ test_topLevelVariable () async {
50
+ await assertNoDiagnostics (r'''
51
+ Null a;
38
52
''' );
39
53
}
40
54
}
Original file line number Diff line number Diff line change @@ -52,8 +52,6 @@ class F implements E {
52
52
}
53
53
54
54
void void_; // OK
55
- Null null_; // LINT
56
- core.Null core_null; // LINT
57
55
Future <void >? future_void; // OK
58
56
Future <Null >? future_null; // LINT
59
57
Future <core.Null >? future_core_null; // LINT
@@ -72,8 +70,6 @@ void Function(Future<Null>)? voidFunctionFutureNull; // LINT
72
70
73
71
usage () {
74
72
void void_; // OK
75
- Null null_; // LINT
76
- core.Null core_null; // LINT
77
73
Future <void >? future_void; // OK
78
74
Future <Null > future_null; // LINT
79
75
Future <core.Null > future_core_null; // LINT
@@ -152,8 +148,6 @@ class AsMembers {
152
148
153
149
void usage () {
154
150
void void_; // OK
155
- Null null_; // LINT
156
- core.Null core_null; // LINT
157
151
Future <void >? future_void; // OK
158
152
Future <Null > future_null; // LINT
159
153
Future <core.Null > future_core_null; // LINT
You can’t perform that action at this time.
0 commit comments