Skip to content

Commit 4804e6d

Browse files
authored
check declared var patterns in constant_identifier_names (dart-archive/linter#3979)
1 parent ef94221 commit 4804e6d

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

lib/src/rules/constant_identifier_names.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class ConstantIdentifierNames extends LintRule {
6363
void registerNodeProcessors(
6464
NodeLintRegistry registry, LinterContext context) {
6565
var visitor = _Visitor(this);
66+
registry.addDeclaredVariablePattern(this, visitor);
6667
registry.addEnumConstantDeclaration(this, visitor);
6768
registry.addTopLevelVariableDeclaration(this, visitor);
6869
registry.addVariableDeclarationList(this, visitor);
@@ -81,6 +82,11 @@ class _Visitor extends SimpleAstVisitor<void> {
8182
}
8283
}
8384

85+
@override
86+
void visitDeclaredVariablePattern(DeclaredVariablePattern node) {
87+
checkIdentifier(node.name);
88+
}
89+
8490
@override
8591
void visitEnumConstantDeclaration(EnumConstantDeclaration node) {
8692
checkIdentifier(node.name);

test/rules/constant_identifier_names_test.dart

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,47 @@ import '../rule_test_support.dart';
99
main() {
1010
defineReflectiveSuite(() {
1111
defineReflectiveTests(ConstantIdentifierNamesRecordsTest);
12+
defineReflectiveTests(ConstantIdentifierNamesPatternsTest);
1213
});
1314
}
1415

16+
@reflectiveTest
17+
class ConstantIdentifierNamesPatternsTest extends LintRuleTest {
18+
@override
19+
List<String> get experiments => ['patterns', 'records'];
20+
21+
@override
22+
String get lintRule => 'constant_identifier_names';
23+
24+
test_destructuredConstField() async {
25+
await assertDiagnostics(r'''
26+
class A {
27+
static const AA = (1, );
28+
}
29+
''', [
30+
lint(25, 2),
31+
]);
32+
}
33+
34+
test_destructuredConstVariable() async {
35+
await assertDiagnostics(r'''
36+
const AA = (1, );
37+
''', [
38+
lint(6, 2),
39+
]);
40+
}
41+
42+
test_destructuredFinalVariable() async {
43+
await assertDiagnostics(r'''
44+
void f() {
45+
final (AA, ) = (1, );
46+
}
47+
''', [
48+
lint(20, 2),
49+
]);
50+
}
51+
}
52+
1553
@reflectiveTest
1654
class ConstantIdentifierNamesRecordsTest extends LintRuleTest {
1755
@override

0 commit comments

Comments
 (0)