Skip to content

Commit f56b8d0

Browse files
authored
Fix false negative in avoid_types_as_parameter_names (dart-archive/linter#2823)
* Fix false negative in `avoid_types_as_parameter_names` * use visitGenericFunctionType * Remove visitGenericFunctionType * Merge and removed sections done for a now fixed issue. * Lint for implicit types. * Make tests has implicit parameter types
1 parent 27ee13a commit f56b8d0

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

lib/src/rules/avoid_types_as_parameter_names.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ class _Visitor extends SimpleAstVisitor<void> {
6868

6969
@override
7070
void visitFormalParameterList(FormalParameterList node) {
71-
if (node.parent is GenericFunctionType) return;
72-
7371
for (var parameter in node.parameters) {
7472
var declaredElement = parameter.declaredElement;
7573
var name = parameter.name;
@@ -87,7 +85,9 @@ class _Visitor extends SimpleAstVisitor<void> {
8785
var result = context.resolveNameInScope(name.lexeme, false, scope);
8886
if (result.isRequestedName) {
8987
var element = result.element;
90-
return element is ClassElement || element is TypeAliasElement;
88+
return element is ClassElement ||
89+
element is TypeAliasElement ||
90+
element is TypeParameterElement;
9191
}
9292
return false;
9393
}

test_data/rules/avoid_types_as_parameter_names.dart

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,14 @@ m10(m1) => null; // OK
4545
class FieldFormalParameter {
4646
final int num;
4747
FieldFormalParameter(this.num); // OK
48-
}
48+
}
49+
50+
void m11<X>(X) {} // LINT
51+
52+
void m12(int Function<T>(T) g) {} // OK
53+
54+
class C<X> {
55+
C.name();
56+
factory C(X) => C.name(); // LINT
57+
void m(void Function(X) h) {} // OK
58+
}

0 commit comments

Comments
 (0)