From fc0b17d5a0207f9e6387079f2aff94f536df7e7c Mon Sep 17 00:00:00 2001 From: rzvxa <3788964+rzvxa@users.noreply.github.com> Date: Tue, 16 Jul 2024 22:43:20 +0000 Subject: [PATCH] refactor(syntax): turn the `AstNodeId::dummy` into a constant field. (#4308) --- crates/oxc_cfg/tests/builder.rs | 2 +- crates/oxc_semantic/src/builder.rs | 6 +++--- crates/oxc_syntax/src/node.rs | 5 +---- crates/oxc_traverse/src/context/scoping.rs | 6 +++--- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/crates/oxc_cfg/tests/builder.rs b/crates/oxc_cfg/tests/builder.rs index 58e2dc4d8c408..5308e4034d035 100644 --- a/crates/oxc_cfg/tests/builder.rs +++ b/crates/oxc_cfg/tests/builder.rs @@ -29,7 +29,7 @@ fn labeled_statement_with_multiple_loops_continue_and_break() { cfg.ctx(None).default().allow_break().allow_continue(); cfg.ctx(None).mark_break(c2).mark_continue(c2).resolve_with_upper_label(); - cfg.append_break(AstNodeId::dummy(), A); + cfg.append_break(AstNodeId::DUMMY, A); // labeled block end cfg.ctx(A).mark_break(labeled).resolve(); diff --git a/crates/oxc_semantic/src/builder.rs b/crates/oxc_semantic/src/builder.rs index 5cd0173bff311..f3a6c72ffab81 100644 --- a/crates/oxc_semantic/src/builder.rs +++ b/crates/oxc_semantic/src/builder.rs @@ -189,7 +189,7 @@ impl<'a> SemanticBuilder<'a> { /// # Panics pub fn build(mut self, program: &Program<'a>) -> SemanticBuilderReturn<'a> { if self.source_type.is_typescript_definition() { - let scope_id = self.scope.add_scope(None, AstNodeId::dummy(), ScopeFlags::Top); + let scope_id = self.scope.add_scope(None, AstNodeId::DUMMY, ScopeFlags::Top); program.scope_id.set(Some(scope_id)); } else { self.visit_program(program); @@ -252,7 +252,7 @@ impl<'a> SemanticBuilder<'a> { #[inline] fn record_ast_nodes(&mut self) { if self.cfg.is_some() { - self.ast_node_records.push(AstNodeId::dummy()); + self.ast_node_records.push(AstNodeId::DUMMY); } } @@ -273,7 +273,7 @@ impl<'a> SemanticBuilder<'a> { // if self.cfg.is_some() { if let Some(record) = self.ast_node_records.last_mut() { - if *record == AstNodeId::dummy() { + if *record == AstNodeId::DUMMY { *record = self.current_node_id; } } diff --git a/crates/oxc_syntax/src/node.rs b/crates/oxc_syntax/src/node.rs index 187e4da854d3a..f21a18f9bf566 100644 --- a/crates/oxc_syntax/src/node.rs +++ b/crates/oxc_syntax/src/node.rs @@ -6,10 +6,7 @@ define_index_type! { } impl AstNodeId { - #[inline] - pub fn dummy() -> Self { - Self::new(0) - } + pub const DUMMY: Self = AstNodeId::from_raw_unchecked(0); } #[cfg(feature = "serialize")] diff --git a/crates/oxc_traverse/src/context/scoping.rs b/crates/oxc_traverse/src/context/scoping.rs index cf632f87bf506..4345abd18bb2b 100644 --- a/crates/oxc_traverse/src/context/scoping.rs +++ b/crates/oxc_traverse/src/context/scoping.rs @@ -121,7 +121,7 @@ impl TraverseScoping { /// `flags` provided are amended to inherit from parent scope's flags. pub fn create_scope_child_of_current(&mut self, flags: ScopeFlags) -> ScopeId { let flags = self.scopes.get_new_scope_flags(flags, self.current_scope_id); - self.scopes.add_scope(Some(self.current_scope_id), AstNodeId::dummy(), flags) + self.scopes.add_scope(Some(self.current_scope_id), AstNodeId::DUMMY, flags) } /// Insert a scope into scope tree below a statement. @@ -268,7 +268,7 @@ impl TraverseScoping { flag: ReferenceFlag, ) -> ReferenceId { let reference = - Reference::new_with_symbol_id(SPAN, name, AstNodeId::dummy(), symbol_id, flag); + Reference::new_with_symbol_id(SPAN, name, AstNodeId::DUMMY, symbol_id, flag); let reference_id = self.symbols.create_reference(reference); self.symbols.resolved_references[symbol_id].push(reference_id); reference_id @@ -297,7 +297,7 @@ impl TraverseScoping { name: CompactStr, flag: ReferenceFlag, ) -> ReferenceId { - let reference = Reference::new(SPAN, name.clone(), AstNodeId::dummy(), flag); + let reference = Reference::new(SPAN, name.clone(), AstNodeId::DUMMY, flag); let reference_id = self.symbols.create_reference(reference); self.scopes.add_root_unresolved_reference(name, reference_id); reference_id