Merge pull request #1953 from davidmorgan/fix-unnecessary-final
Fix unnecessary_final: don't fire for fields.
diff --git a/lib/src/rules/unnecessary_final.dart b/lib/src/rules/unnecessary_final.dart
index d6f29f8..8a23c5c 100644
--- a/lib/src/rules/unnecessary_final.dart
+++ b/lib/src/rules/unnecessary_final.dart
@@ -50,7 +50,7 @@
registry
..addFormalParameterList(this, visitor)
..addForStatement(this, visitor)
- ..addVariableDeclaration(this, visitor);
+ ..addVariableDeclarationStatement(this, visitor);
}
}
@@ -85,9 +85,9 @@
}
@override
- void visitVariableDeclaration(VariableDeclaration node) {
- if (node.isFinal) {
- rule.reportLint(node.name);
+ void visitVariableDeclarationStatement(VariableDeclarationStatement node) {
+ if (node.variables.isFinal) {
+ rule.reportLint(node.variables);
}
}
}
diff --git a/test/rules/unnecessary_final.dart b/test/rules/unnecessary_final.dart
index 3bb25cd..2b00643 100644
--- a/test/rules/unnecessary_final.dart
+++ b/test/rules/unnecessary_final.dart
@@ -19,3 +19,7 @@
print(((String char) => char.length)(char)); // OK
}
}
+
+class GoodClass {
+ final int x = 3; // OK
+}