Improve the highlight range for avoid_private_typedef_functions
diff --git a/lib/src/rules/avoid_private_typedef_functions.dart b/lib/src/rules/avoid_private_typedef_functions.dart
index f3642bf..7942873 100644
--- a/lib/src/rules/avoid_private_typedef_functions.dart
+++ b/lib/src/rules/avoid_private_typedef_functions.dart
@@ -65,25 +65,28 @@
@override
void visitFunctionTypeAlias(FunctionTypeAlias node) {
- if (node.declaredElement.isPrivate) {
- _countAndReport(node.name.name, node);
- }
+ _countAndReport(node.name);
}
@override
void visitGenericTypeAlias(GenericTypeAlias node) {
- if (node.declaredElement.isPrivate) {
- _countAndReport(node.name.name, node);
+ if (node.typeParameters != null) {
+ return;
}
+ _countAndReport(node.name);
}
- void _countAndReport(String name, AstNode node) {
+ void _countAndReport(SimpleIdentifier identifier) {
+ var name = identifier.name;
+ if (!Identifier.isPrivateName(name)) {
+ return;
+ }
final visitor = _CountVisitor(name);
for (final unit in context.allUnits) {
- unit.unit.visitChildren(visitor);
+ unit.unit.accept(visitor);
}
if (visitor.count <= 1) {
- rule.reportLint(node);
+ rule.reportLint(identifier);
}
}
}
diff --git a/test/integration_test.dart b/test/integration_test.dart
index 3308cc3..7c2622e 100644
--- a/test/integration_test.dart
+++ b/test/integration_test.dart
@@ -808,8 +808,8 @@
expect(
collectingOut.trim(),
stringContainsInOrder([
- 'lib.dart 9:1 [lint] Avoid private typedef functions.',
- 'part.dart 9:1 [lint] Avoid private typedef functions.',
+ 'lib.dart 9:14 [lint] Avoid private typedef functions.',
+ 'part.dart 9:14 [lint] Avoid private typedef functions.',
'2 files analyzed, 2 issues found',
]));
expect(exitCode, 1);