Skip to content

Commit 692b582

Browse files
srawlinsCommit Queue
authored andcommitted
analyzer: Make LintRule.reportLintForToken.token non-nullable
Change-Id: I99060fd7531964f68ebdf14f2be305359fa43d5b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/424160 Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]>
1 parent 8308d65 commit 692b582

14 files changed

+53
-34
lines changed

pkg/analyzer/lib/src/lint/linter.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,12 +284,12 @@ abstract class LintRule {
284284
}
285285

286286
void reportLintForToken(
287-
Token? token, {
287+
Token token, {
288288
List<Object> arguments = const [],
289289
List<DiagnosticMessage>? contextMessages,
290290
ErrorCode? errorCode,
291291
}) {
292-
if (token != null && !token.isSynthetic) {
292+
if (!token.isSynthetic) {
293293
reporter.atToken(
294294
token,
295295
errorCode ?? lintCode,

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ class _Visitor extends SimpleAstVisitor<void> {
144144
node.body.accept(validUseVisitor);
145145
if (validUseVisitor.hasValidUse) return;
146146

147-
rule.reportLintForToken(node.catchKeyword);
147+
var catchKeyword = node.catchKeyword;
148+
if (catchKeyword == null) return;
149+
150+
rule.reportLintForToken(catchKeyword);
148151
}
149152
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ class _Visitor extends SimpleAstVisitor<void> {
5151
if (hash is MethodDeclaration) {
5252
rule.reportLintForToken(hash.name, arguments: ['==', 'hashCode']);
5353
} else if (hash is FieldDeclaration) {
54+
var hashCodeFieldName = getFieldName(hash, 'hashCode');
55+
if (hashCodeFieldName == null) return;
5456
rule.reportLintForToken(
55-
getFieldName(hash, 'hashCode'),
57+
hashCodeFieldName,
5658
arguments: ['==', 'hashCode'],
5759
);
5860
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,9 @@ class _Visitor extends SimpleAstVisitor<void> {
136136
return;
137137
}
138138
}
139-
if (node.keyword != null) {
140-
rule.reportLintForToken(node.keyword);
139+
var keyword = node.keyword;
140+
if (keyword != null) {
141+
rule.reportLintForToken(keyword);
141142
} else if (node.type != null) {
142143
rule.reportLint(node.type);
143144
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,8 @@ class _Visitor extends SimpleAstVisitor<void> {
133133
for (var i = 0; i < parameters.length; i++) {
134134
var parameter = parameters[i];
135135
var parameterName = parameter.name;
136-
if (parameterName != null && isWildcardIdentifier(parameterName.lexeme)) {
137-
continue;
138-
}
136+
if (parameterName == null) continue;
137+
if (isWildcardIdentifier(parameterName.lexeme)) continue;
139138

140139
if (parameter is DefaultFormalParameter) {
141140
parameter = parameter.parameter;
@@ -253,7 +252,7 @@ class _Visitor extends SimpleAstVisitor<void> {
253252
return overriddenMember != null;
254253
}
255254

256-
void _report(Token? errorToken, {Token? keyword}) {
255+
void _report(Token errorToken, {Token? keyword}) {
257256
if (keyword == null || keyword.type == Keyword.FINAL) {
258257
rule.reportLintForToken(
259258
errorToken,

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,11 @@ class _Visitor extends SimpleAstVisitor<void> {
3939

4040
@override
4141
void visitInstanceCreationExpression(InstanceCreationExpression node) {
42-
if (node.keyword?.type != Keyword.CONST) return;
42+
var keyword = node.keyword;
43+
if (keyword == null || keyword.type != Keyword.CONST) return;
4344

4445
if (node.inConstantContext) {
45-
rule.reportLintForToken(node.keyword);
46+
rule.reportLintForToken(keyword);
4647
}
4748
}
4849

@@ -54,10 +55,11 @@ class _Visitor extends SimpleAstVisitor<void> {
5455

5556
@override
5657
void visitRecordLiteral(RecordLiteral node) {
57-
if (node.constKeyword == null) return;
58+
var constKeyword = node.constKeyword;
59+
if (constKeyword == null) return;
5860

5961
if (node.inConstantContext) {
60-
rule.reportLintForToken(node.constKeyword);
62+
rule.reportLintForToken(constKeyword);
6163
}
6264
}
6365

@@ -68,10 +70,11 @@ class _Visitor extends SimpleAstVisitor<void> {
6870
}
6971

7072
void _visitTypedLiteral(TypedLiteral node) {
71-
if (node.constKeyword?.type != Keyword.CONST) return;
73+
var constKeyword = node.constKeyword;
74+
if (constKeyword == null || constKeyword.type != Keyword.CONST) return;
7275

7376
if (node.inConstantContext) {
74-
rule.reportLintForToken(node.constKeyword);
77+
rule.reportLintForToken(constKeyword);
7578
}
7679
}
7780
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class _Visitor extends SimpleAstVisitor<void> {
5656
}
5757

5858
void _check(Token? name) {
59-
if (name?.lexeme == 'new') {
59+
if (name != null && name.lexeme == 'new') {
6060
rule.reportLintForToken(name);
6161
}
6262
}

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class _Visitor extends SimpleAstVisitor<void> {
6767
var keyword = node.keyword;
6868
keyword ??=
6969
node.thisOrAncestorOfType<PatternVariableDeclaration>()?.keyword;
70-
if (keyword?.type != Keyword.FINAL) return;
70+
if (keyword == null || keyword.type != Keyword.FINAL) return;
7171

7272
var errorCode = getErrorCode(node.matchedValueType);
7373
rule.reportLintForToken(keyword, errorCode: errorCode);
@@ -95,9 +95,11 @@ class _Visitor extends SimpleAstVisitor<void> {
9595
// loop. `a` is a variable declared outside the loop.
9696
if (forLoopParts is ForEachPartsWithDeclaration) {
9797
var loopVariable = forLoopParts.loopVariable;
98+
var keyword = loopVariable.keyword;
99+
if (keyword == null) return;
98100
if (loopVariable.isFinal) {
99101
var errorCode = getErrorCode(loopVariable.type);
100-
rule.reportLintForToken(loopVariable.keyword, errorCode: errorCode);
102+
rule.reportLintForToken(keyword, errorCode: errorCode);
101103
}
102104
} else if (forLoopParts is ForEachPartsWithPattern) {
103105
var keyword = forLoopParts.keyword;
@@ -112,9 +114,11 @@ class _Visitor extends SimpleAstVisitor<void> {
112114

113115
@override
114116
void visitVariableDeclarationStatement(VariableDeclarationStatement node) {
117+
var keyword = node.variables.keyword;
118+
if (keyword == null) return;
115119
if (node.variables.isFinal) {
116120
var errorCode = getErrorCode(node.variables.type);
117-
rule.reportLintForToken(node.variables.keyword, errorCode: errorCode);
121+
rule.reportLintForToken(keyword, errorCode: errorCode);
118122
}
119123
}
120124
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,12 @@ class _Visitor extends SimpleAstVisitor<void> {
4545
}
4646

4747
void _visitVariableDeclarations(VariableDeclarationList node) {
48-
if (node.lateKeyword == null) return;
48+
var lateKeyword = node.lateKeyword;
49+
if (lateKeyword == null) return;
4950
if (node.variables.any((v) => v.initializer == null)) {
5051
return;
5152
}
5253

53-
rule.reportLintForToken(node.lateKeyword);
54+
rule.reportLintForToken(lateKeyword);
5455
}
5556
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ class _Visitor extends SimpleAstVisitor<void> {
3535

3636
@override
3737
void visitInstanceCreationExpression(InstanceCreationExpression node) {
38-
if (node.keyword?.type == Keyword.NEW) {
39-
rule.reportLintForToken(node.keyword);
38+
var keyword = node.keyword;
39+
if (keyword != null && keyword.type == Keyword.NEW) {
40+
rule.reportLintForToken(keyword);
4041
}
4142
}
4243
}

0 commit comments

Comments
 (0)