diff --git a/crates/oxc_semantic/src/builder.rs b/crates/oxc_semantic/src/builder.rs index 6bfc2567c..b6211dea1 100644 --- a/crates/oxc_semantic/src/builder.rs +++ b/crates/oxc_semantic/src/builder.rs @@ -1787,6 +1787,11 @@ impl<'a> SemanticBuilder<'a> { // ^^^^^^^^ self.current_reference_flag = ReferenceFlag::Read | ReferenceFlag::TSTypeQuery; } + AstKind::TSTypeParameterInstantiation(_) => { + // type A = typeof a; + // ^^^ avoid treat T as a value and TSTypeQuery + self.current_reference_flag -= ReferenceFlag::Read | ReferenceFlag::TSTypeQuery; + } AstKind::TSTypeName(_) => { match self.nodes.parent_kind(self.current_node_id) { Some( diff --git a/crates/oxc_semantic/tests/fixtures/typescript-eslint/instantiation-expressions/type-arguments2.snap b/crates/oxc_semantic/tests/fixtures/typescript-eslint/instantiation-expressions/type-arguments2.snap index c16b63c00..07d2bb8a3 100644 --- a/crates/oxc_semantic/tests/fixtures/typescript-eslint/instantiation-expressions/type-arguments2.snap +++ b/crates/oxc_semantic/tests/fixtures/typescript-eslint/instantiation-expressions/type-arguments2.snap @@ -52,7 +52,14 @@ input_file: crates/oxc_semantic/tests/fixtures/typescript-eslint/instantiation-e "id": 4, "name": "T", "node": "TSTypeParameter", - "references": [] + "references": [ + { + "flag": "ReferenceFlag(Type)", + "id": 3, + "name": "T", + "node_id": 31 + } + ] } ] } diff --git a/crates/oxc_semantic/tests/fixtures/typescript-eslint/type-declaration/type-query-with-parameters.snap b/crates/oxc_semantic/tests/fixtures/typescript-eslint/type-declaration/type-query-with-parameters.snap index 7561c89a0..cf1cc71c9 100644 --- a/crates/oxc_semantic/tests/fixtures/typescript-eslint/type-declaration/type-query-with-parameters.snap +++ b/crates/oxc_semantic/tests/fixtures/typescript-eslint/type-declaration/type-query-with-parameters.snap @@ -52,7 +52,14 @@ input_file: crates/oxc_semantic/tests/fixtures/typescript-eslint/type-declaratio "id": 4, "name": "T", "node": "TSTypeParameter", - "references": [] + "references": [ + { + "flag": "ReferenceFlag(Type)", + "id": 3, + "name": "T", + "node_id": 33 + } + ] } ] }