short circuit node processor registry outside NNBD (#2265)
* short circuit node processor registry outside NNBD
* => context.isEnabled
diff --git a/lib/src/rules/cast_nullable_to_non_nullable.dart b/lib/src/rules/cast_nullable_to_non_nullable.dart
index 8ffc846..65b27b3 100644
--- a/lib/src/rules/cast_nullable_to_non_nullable.dart
+++ b/lib/src/rules/cast_nullable_to_non_nullable.dart
@@ -48,10 +48,13 @@
);
@override
- void registerNodeProcessors(NodeLintRegistry registry,
- [LinterContext context]) {
+ void registerNodeProcessors(
+ NodeLintRegistry registry, LinterContext context) {
+ if (!context.isEnabled(Feature.non_nullable)) {
+ return;
+ }
+
final visitor = _Visitor(this, context);
- registry.addCompilationUnit(this, visitor);
registry.addAsExpression(this, visitor);
}
}
@@ -62,17 +65,8 @@
final LintRule rule;
final LinterContext context;
- bool _isNonNullableEnabled;
-
- @override
- void visitCompilationUnit(CompilationUnit node) {
- _isNonNullableEnabled = node.featureSet.isEnabled(Feature.non_nullable);
- }
-
@override
void visitAsExpression(AsExpression node) {
- if (!_isNonNullableEnabled) return;
-
final expressionType = node.expression.staticType;
final type = node.type.type;
if (!expressionType.isDynamic &&
diff --git a/lib/src/rules/null_check_on_nullable_type_parameter.dart b/lib/src/rules/null_check_on_nullable_type_parameter.dart
index 0adab49..2a31034 100644
--- a/lib/src/rules/null_check_on_nullable_type_parameter.dart
+++ b/lib/src/rules/null_check_on_nullable_type_parameter.dart
@@ -56,8 +56,12 @@
);
@override
- void registerNodeProcessors(NodeLintRegistry registry,
- [LinterContext context]) {
+ void registerNodeProcessors(
+ NodeLintRegistry registry, LinterContext context) {
+ if (!context.isEnabled(Feature.non_nullable)) {
+ return;
+ }
+
final visitor = _Visitor(this, context);
registry.addCompilationUnit(this, visitor);
registry.addPostfixExpression(this, visitor);
@@ -70,16 +74,8 @@
final LintRule rule;
final LinterContext context;
- bool _isNonNullableEnabled;
-
- @override
- void visitCompilationUnit(CompilationUnit node) {
- _isNonNullableEnabled = node.featureSet.isEnabled(Feature.non_nullable);
- }
-
@override
void visitPostfixExpression(PostfixExpression node) {
- if (!_isNonNullableEnabled) return;
if (node.operator.type != TokenType.BANG) return;
final expectedType = getExpectedType(node);
diff --git a/lib/src/rules/tighten_type_of_initializing_formals.dart b/lib/src/rules/tighten_type_of_initializing_formals.dart
index 6e69e9c..2054465 100644
--- a/lib/src/rules/tighten_type_of_initializing_formals.dart
+++ b/lib/src/rules/tighten_type_of_initializing_formals.dart
@@ -48,10 +48,13 @@
);
@override
- void registerNodeProcessors(NodeLintRegistry registry,
- [LinterContext context]) {
+ void registerNodeProcessors(
+ NodeLintRegistry registry, LinterContext context) {
+ if (!context.isEnabled(Feature.non_nullable)) {
+ return;
+ }
+
final visitor = _Visitor(this, context);
- registry.addCompilationUnit(this, visitor);
registry.addConstructorDeclaration(this, visitor);
}
}
@@ -62,17 +65,8 @@
final LintRule rule;
final LinterContext context;
- bool _isNonNullableEnabled;
-
- @override
- void visitCompilationUnit(CompilationUnit node) {
- _isNonNullableEnabled = node.featureSet.isEnabled(Feature.non_nullable);
- }
-
@override
void visitConstructorDeclaration(ConstructorDeclaration node) {
- if (!_isNonNullableEnabled) return;
-
node.initializers
.whereType<AssertInitializer>()
.map((e) => e.condition)
diff --git a/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart b/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart
index 5b9c97e..4170be4 100644
--- a/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart
+++ b/lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart
@@ -39,8 +39,12 @@
group: Group.style);
@override
- void registerNodeProcessors(NodeLintRegistry registry,
- [LinterContext context]) {
+ void registerNodeProcessors(
+ NodeLintRegistry registry, LinterContext context) {
+ if (!context.isEnabled(Feature.non_nullable)) {
+ return;
+ }
+
final visitor = _Visitor(this, context);
registry.addCompilationUnit(this, visitor);
registry.addFieldDeclaration(this, visitor);
@@ -55,17 +59,8 @@
final LintRule rule;
final LinterContext context;
- bool _isNonNullableEnabled;
-
- @override
- void visitCompilationUnit(CompilationUnit node) {
- _isNonNullableEnabled = node.featureSet.isEnabled(Feature.non_nullable);
- }
-
@override
void visitFieldDeclaration(FieldDeclaration node) {
- if (!_isNonNullableEnabled) return;
-
for (var variable in node.fields.variables) {
if (Identifier.isPrivateName(variable.name.name) || node.isStatic) {
_visit(variable);
@@ -75,15 +70,11 @@
@override
void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
- if (!_isNonNullableEnabled) return;
-
node.variables.variables.forEach(_visit);
}
@override
void visitVariableDeclarationStatement(VariableDeclarationStatement node) {
- if (!_isNonNullableEnabled) return;
-
node.variables.variables.forEach(_visit);
}