diff --git a/packages/scope-manager/src/referencer/Referencer.ts b/packages/scope-manager/src/referencer/Referencer.ts index 0799a1f0c0f..c271a1c2c12 100644 --- a/packages/scope-manager/src/referencer/Referencer.ts +++ b/packages/scope-manager/src/referencer/Referencer.ts @@ -214,13 +214,14 @@ class Referencer extends Visitor { new ParameterDefinition(pattern, node, info.rest), ); - this.visitType(pattern.typeAnnotation); this.referencingDefaultValue(pattern, info.assignments, null, true); }, { processRightHandNodes: true }, ); if ('typeAnnotation' in param) { this.visitType(param.typeAnnotation); + } else if (param.type === AST_NODE_TYPES.AssignmentPattern) { + this.visitType(param.left.typeAnnotation); } param.decorators?.forEach(d => this.visit(d)); } diff --git a/packages/scope-manager/tests/fixtures/functions/arrow/type-parameters/param-reference.ts.shot b/packages/scope-manager/tests/fixtures/functions/arrow/type-parameters/param-reference.ts.shot index 24cd880b0fa..d676460da1d 100644 --- a/packages/scope-manager/tests/fixtures/functions/arrow/type-parameters/param-reference.ts.shot +++ b/packages/scope-manager/tests/fixtures/functions/arrow/type-parameters/param-reference.ts.shot @@ -49,11 +49,6 @@ ScopeManager { isTypeReference: true, resolved: Variable$3, }, - Reference$3 { - identifier: Identifier<"T">, - isTypeReference: true, - resolved: Variable$3, - }, ], isValueVariable: false, isTypeVariable: true, @@ -80,7 +75,6 @@ ScopeManager { isStrict: false, references: Array [ Reference$2, - Reference$3, ], set: Map { "a" => Variable$2, diff --git a/packages/scope-manager/tests/fixtures/functions/function-declaration/type-parameters/param-reference.ts.shot b/packages/scope-manager/tests/fixtures/functions/function-declaration/type-parameters/param-reference.ts.shot index cd162133488..11a3fbcea6e 100644 --- a/packages/scope-manager/tests/fixtures/functions/function-declaration/type-parameters/param-reference.ts.shot +++ b/packages/scope-manager/tests/fixtures/functions/function-declaration/type-parameters/param-reference.ts.shot @@ -48,11 +48,6 @@ ScopeManager { isTypeReference: true, resolved: Variable$4, }, - Reference$2 { - identifier: Identifier<"T">, - isTypeReference: true, - resolved: Variable$4, - }, ], isValueVariable: false, isTypeVariable: true, @@ -77,7 +72,6 @@ ScopeManager { isStrict: false, references: Array [ Reference$1, - Reference$2, ], set: Map { "arguments" => Variable$2, diff --git a/packages/scope-manager/tests/fixtures/functions/function-expression/type-parameters/param-reference.ts.shot b/packages/scope-manager/tests/fixtures/functions/function-expression/type-parameters/param-reference.ts.shot index de67c07993e..ab717d64779 100644 --- a/packages/scope-manager/tests/fixtures/functions/function-expression/type-parameters/param-reference.ts.shot +++ b/packages/scope-manager/tests/fixtures/functions/function-expression/type-parameters/param-reference.ts.shot @@ -56,11 +56,6 @@ ScopeManager { isTypeReference: true, resolved: Variable$4, }, - Reference$3 { - identifier: Identifier<"T">, - isTypeReference: true, - resolved: Variable$4, - }, ], isValueVariable: false, isTypeVariable: true, @@ -87,7 +82,6 @@ ScopeManager { isStrict: false, references: Array [ Reference$2, - Reference$3, ], set: Map { "arguments" => Variable$2, diff --git a/packages/scope-manager/tests/fixtures/type-annotation/parameter-default.ts.shot b/packages/scope-manager/tests/fixtures/type-annotation/parameter-default.ts.shot index fda3779d541..94fd6552bf0 100644 --- a/packages/scope-manager/tests/fixtures/type-annotation/parameter-default.ts.shot +++ b/packages/scope-manager/tests/fixtures/type-annotation/parameter-default.ts.shot @@ -12,7 +12,7 @@ ScopeManager { ], name: "T", references: Array [ - Reference$1 { + Reference$2 { identifier: Identifier<"T">, isTypeReference: true, resolved: Variable$1, @@ -49,7 +49,7 @@ ScopeManager { ], name: "a", references: Array [ - Reference$2 { + Reference$1 { identifier: Identifier<"a">, init: true, isTypeReference: false, diff --git a/packages/scope-manager/tests/fixtures/type-annotation/parameter.ts.shot b/packages/scope-manager/tests/fixtures/type-annotation/parameter.ts.shot index fecf0e21c44..5fe34d95fe0 100644 --- a/packages/scope-manager/tests/fixtures/type-annotation/parameter.ts.shot +++ b/packages/scope-manager/tests/fixtures/type-annotation/parameter.ts.shot @@ -17,11 +17,6 @@ ScopeManager { isTypeReference: true, resolved: Variable$1, }, - Reference$2 { - identifier: Identifier<"T">, - isTypeReference: true, - resolved: Variable$1, - }, ], isValueVariable: false, isTypeVariable: true, @@ -79,7 +74,6 @@ ScopeManager { isStrict: false, references: Array [ Reference$1, - Reference$2, ], set: Map { "arguments" => Variable$3,