2
2
// for details. All rights reserved. Use of this source code is governed by a
3
3
// BSD-style license that can be found in the LICENSE file.
4
4
5
+ import 'package:analyzer/dart/analysis/features.dart' ;
5
6
import 'package:analyzer/dart/ast/ast.dart' ;
6
7
import 'package:analyzer/dart/ast/token.dart' ;
7
8
import 'package:analyzer/dart/ast/visitor.dart' ;
@@ -51,7 +52,8 @@ class UnnecessaryConst extends LintRule {
51
52
@override
52
53
void registerNodeProcessors (
53
54
NodeLintRegistry registry, LinterContext context) {
54
- var visitor = _Visitor (this );
55
+ var visitor =
56
+ _Visitor (this , patternsEnabled: context.isEnabled (Feature .patterns));
55
57
registry.addInstanceCreationExpression (this , visitor);
56
58
registry.addListLiteral (this , visitor);
57
59
registry.addRecordLiteral (this , visitor);
@@ -61,7 +63,8 @@ class UnnecessaryConst extends LintRule {
61
63
62
64
class _Visitor extends SimpleAstVisitor {
63
65
final LintRule rule;
64
- _Visitor (this .rule);
66
+ final bool patternsEnabled;
67
+ _Visitor (this .rule, {required this .patternsEnabled});
65
68
66
69
@override
67
70
void visitInstanceCreationExpression (InstanceCreationExpression node) {
@@ -73,7 +76,10 @@ class _Visitor extends SimpleAstVisitor {
73
76
}
74
77
75
78
@override
76
- void visitListLiteral (ListLiteral node) => _visitTypedLiteral (node);
79
+ void visitListLiteral (ListLiteral node) {
80
+ if (patternsEnabled) return ;
81
+ _visitTypedLiteral (node);
82
+ }
77
83
78
84
@override
79
85
void visitRecordLiteral (RecordLiteral node) {
@@ -86,6 +92,7 @@ class _Visitor extends SimpleAstVisitor {
86
92
87
93
@override
88
94
void visitSetOrMapLiteral (SetOrMapLiteral node) {
95
+ if (patternsEnabled) return ;
89
96
_visitTypedLiteral (node);
90
97
}
91
98
0 commit comments