diff --git a/crates/oxc_linter/src/rules/import/namespace.rs b/crates/oxc_linter/src/rules/import/namespace.rs index 5bf1ea134..8173e6886 100644 --- a/crates/oxc_linter/src/rules/import/namespace.rs +++ b/crates/oxc_linter/src/rules/import/namespace.rs @@ -152,8 +152,7 @@ impl Rule for Namespace { return; } - let Some(symbol_id) = - ctx.semantic().symbols().get_symbol_id_from_span(entry.local_name.span()) + let Some(symbol_id) = ctx.scopes().get_root_binding(entry.local_name.name().as_str()) else { return; }; diff --git a/crates/oxc_linter/src/rules/import/no_named_as_default_member.rs b/crates/oxc_linter/src/rules/import/no_named_as_default_member.rs index d4fca4c37..b34349de5 100644 --- a/crates/oxc_linter/src/rules/import/no_named_as_default_member.rs +++ b/crates/oxc_linter/src/rules/import/no_named_as_default_member.rs @@ -88,12 +88,20 @@ impl Rule for NoNamedAsDefaultMember { continue; }; - if !remote_module_record_ref.exported_bindings.is_empty() { - has_members_map.insert( - ctx.symbols().get_symbol_id_from_span(import_entry.local_name.span()).unwrap(), - (remote_module_record_ref, import_entry.module_request.name().clone()), - ); + if remote_module_record_ref.exported_bindings.is_empty() { + continue; } + + let Some(symbol_id) = + ctx.scopes().get_root_binding(import_entry.local_name.name().as_str()) + else { + return; + }; + + has_members_map.insert( + symbol_id, + (remote_module_record_ref, import_entry.module_request.name().clone()), + ); } if has_members_map.is_empty() { diff --git a/crates/oxc_semantic/src/symbol.rs b/crates/oxc_semantic/src/symbol.rs index b58ea210f..3c220cbc6 100644 --- a/crates/oxc_semantic/src/symbol.rs +++ b/crates/oxc_semantic/src/symbol.rs @@ -88,12 +88,6 @@ impl SymbolTable { self.spans.iter_enumerated().map(|(symbol_id, _)| symbol_id) } - pub fn get_symbol_id_from_span(&self, span: Span) -> Option { - self.spans - .iter_enumerated() - .find_map(|(symbol, &inner_span)| if inner_span == span { Some(symbol) } else { None }) - } - /// Get the [`Span`] of the [`AstNode`] declaring a symbol. /// /// [`AstNode`]: crate::node::AstNode @@ -152,10 +146,6 @@ impl SymbolTable { self.scope_ids[symbol_id] } - pub fn get_scope_id_from_span(&self, span: Span) -> Option { - self.get_symbol_id_from_span(span).map(|symbol_id| self.get_scope_id(symbol_id)) - } - /// Get the ID of the AST node declaring a symbol. /// /// This node will be a [`VariableDeclaration`], [`Function`], or some other AST node