|
1 | | -use oxc_ast::{AstKind, ast::*}; |
2 | | -use oxc_semantic::{AstNode, AstNodes, NodeId, ReferenceId, Scoping, SymbolId}; |
3 | 1 | use rustc_hash::FxHashSet; |
4 | 2 |
|
| 3 | +use oxc_ast::{AstKind, ast::*}; |
| 4 | +use oxc_semantic::{AstNode, AstNodes, ReferenceId, Scoping, SymbolId}; |
| 5 | + |
5 | 6 | #[derive(Debug, Clone, Copy, Default)] |
6 | 7 | pub struct MangleOptionsKeepNames { |
7 | 8 | /// Preserve `name` property for functions. |
@@ -73,10 +74,10 @@ impl<'a, 'b: 'a> NameSymbolCollector<'a, 'b> { |
73 | 74 | } |
74 | 75 |
|
75 | 76 | fn has_name_set_reference_node(&self, symbol_id: SymbolId) -> bool { |
76 | | - self.scoping.get_resolved_reference_ids(symbol_id).into_iter().any(|reference_id| { |
77 | | - let node_id = self.scoping.get_reference(*reference_id).node_id(); |
78 | | - self.is_name_set_reference_node(node_id, *reference_id) |
79 | | - }) |
| 77 | + self.scoping |
| 78 | + .get_resolved_reference_ids(symbol_id) |
| 79 | + .iter() |
| 80 | + .any(|&reference_id| self.is_name_set_reference_node(reference_id)) |
80 | 81 | } |
81 | 82 |
|
82 | 83 | fn is_name_set_declare_node(&self, node: &'a AstNode, symbol_id: SymbolId) -> bool { |
@@ -110,7 +111,8 @@ impl<'a, 'b: 'a> NameSymbolCollector<'a, 'b> { |
110 | 111 | } |
111 | 112 | } |
112 | 113 |
|
113 | | - fn is_name_set_reference_node(&self, node_id: NodeId, reference_id: ReferenceId) -> bool { |
| 114 | + fn is_name_set_reference_node(&self, reference_id: ReferenceId) -> bool { |
| 115 | + let node_id = self.scoping.get_reference(reference_id).node_id(); |
114 | 116 | let parent_node_id = self.ast_nodes.parent_id(node_id); |
115 | 117 | match self.ast_nodes.kind(parent_node_id) { |
116 | 118 | // Check for direct assignment: foo = function() {} |
|
0 commit comments