From 83791a0058bcd4e3048f896d7b1a3ee2be5fd631 Mon Sep 17 00:00:00 2001 From: camc314 <18101008+camc314@users.noreply.github.com> Date: Fri, 19 Sep 2025 08:35:41 +0000 Subject: [PATCH] refactor(linter): remove double reference in vue/jsx-no-undef (#13915) --- .../src/generated/rule_runner_impls.rs | 3 ++- .../src/rules/react/jsx_no_undef.rs | 22 +++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/crates/oxc_linter/src/generated/rule_runner_impls.rs b/crates/oxc_linter/src/generated/rule_runner_impls.rs index b857a2c16817e..0caca02acbb07 100644 --- a/crates/oxc_linter/src/generated/rule_runner_impls.rs +++ b/crates/oxc_linter/src/generated/rule_runner_impls.rs @@ -1621,7 +1621,8 @@ impl RuleRunner for crate::rules::react::jsx_no_target_blank::JsxNoTargetBlank { } impl RuleRunner for crate::rules::react::jsx_no_undef::JsxNoUndef { - const NODE_TYPES: Option<&AstTypesBitset> = None; + const NODE_TYPES: Option<&AstTypesBitset> = + Some(&AstTypesBitset::from_types(&[AstType::JSXOpeningElement])); } impl RuleRunner for crate::rules::react::jsx_no_useless_fragment::JsxNoUselessFragment { diff --git a/crates/oxc_linter/src/rules/react/jsx_no_undef.rs b/crates/oxc_linter/src/rules/react/jsx_no_undef.rs index ef6871bb64bdb..7ef625c026bb3 100644 --- a/crates/oxc_linter/src/rules/react/jsx_no_undef.rs +++ b/crates/oxc_linter/src/rules/react/jsx_no_undef.rs @@ -66,18 +66,18 @@ fn get_member_ident<'a>( impl Rule for JsxNoUndef { fn run<'a>(&self, node: &AstNode<'a>, ctx: &LintContext<'a>) { - if let AstKind::JSXOpeningElement(elem) = &node.kind() { - if let Some(ident) = get_resolvable_ident(&elem.name) { - let reference = ctx.scoping().get_reference(ident.reference_id()); - if reference.symbol_id().is_some() { - return; - } - let name = ident.name.as_str(); - if ctx.globals().is_enabled(name) { - return; - } - ctx.diagnostic(jsx_no_undef_diagnostic(name, ident.span)); + let AstKind::JSXOpeningElement(elem) = node.kind() else { return }; + + if let Some(ident) = get_resolvable_ident(&elem.name) { + let reference = ctx.scoping().get_reference(ident.reference_id()); + if reference.symbol_id().is_some() { + return; + } + let name = ident.name.as_str(); + if ctx.globals().is_enabled(name) { + return; } + ctx.diagnostic(jsx_no_undef_diagnostic(name, ident.span)); } }