From fdedc0f8b11dcd8b23ee1ea08b0c817d8d94d69a Mon Sep 17 00:00:00 2001 From: overlookmotel <557937+overlookmotel@users.noreply.github.com> Date: Tue, 27 Aug 2024 11:58:21 +0000 Subject: [PATCH] refactor(semantic): transform checker: rename `SemanticData` to `Scoping` (#5261) Pure refactor. Rename type and vars with a more descriptive name. --- .../src/post_transform_checker.rs | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/crates/oxc_semantic/src/post_transform_checker.rs b/crates/oxc_semantic/src/post_transform_checker.rs index 0dc31238e3d4e..d2620724ae97f 100644 --- a/crates/oxc_semantic/src/post_transform_checker.rs +++ b/crates/oxc_semantic/src/post_transform_checker.rs @@ -118,8 +118,8 @@ pub fn check_semantic_after_transform( let mut errors = Errors::default(); // Collect `ScopeId`s, `SymbolId`s and `ReferenceId`s from AST after transformer - let data_after_transform = - SemanticData { symbols: symbols_after_transform, scopes: scopes_after_transform }; + let scoping_after_transform = + Scoping { symbols: symbols_after_transform, scopes: scopes_after_transform }; let (scope_ids_after_transform, symbol_ids_after_transform, reference_ids_after_transform) = SemanticIdsCollector::new(&mut errors).collect(program); @@ -133,7 +133,7 @@ pub fn check_semantic_after_transform( .build(&program) .semantic .into_symbol_table_and_scope_tree(); - let data_rebuilt = SemanticData { symbols: &symbols_rebuilt, scopes: &scopes_rebuilt }; + let scoping_rebuilt = Scoping { symbols: &symbols_rebuilt, scopes: &scopes_rebuilt }; let (scope_ids_rebuilt, symbol_ids_rebuilt, reference_ids_rebuilt) = SemanticIdsCollector::new(&mut errors).collect(&program); @@ -145,8 +145,8 @@ pub fn check_semantic_after_transform( // Compare post-transform semantic data to semantic data from fresh semantic analysis let mut checker = PostTransformChecker { - after_transform: data_after_transform, - rebuilt: data_rebuilt, + scoping_after_transform, + scoping_rebuilt, scope_ids_map, symbol_ids_map, reference_ids_map, @@ -168,8 +168,8 @@ pub fn check_semantic_ids(program: &Program<'_>) -> Option> { } struct PostTransformChecker<'s> { - after_transform: SemanticData<'s>, - rebuilt: SemanticData<'s>, + scoping_after_transform: Scoping<'s>, + scoping_rebuilt: Scoping<'s>, // Mappings from after transform ID to rebuilt ID scope_ids_map: IdMapping, symbol_ids_map: IdMapping, @@ -177,7 +177,7 @@ struct PostTransformChecker<'s> { errors: Errors, } -struct SemanticData<'s> { +struct Scoping<'s> { symbols: &'s SymbolTable, scopes: &'s ScopeTree, } @@ -325,9 +325,9 @@ impl<'s> PostTransformChecker<'s> { fn check_scopes(&mut self) { for scope_ids in self.scope_ids_map.pairs() { // Check bindings are the same - fn get_sorted_binding_names(data: &SemanticData, scope_id: ScopeId) -> Vec { + fn get_sorted_binding_names(scoping: &Scoping, scope_id: ScopeId) -> Vec { let mut binding_names = - data.scopes.get_bindings(scope_id).keys().cloned().collect::>(); + scoping.scopes.get_bindings(scope_id).keys().cloned().collect::>(); binding_names.sort_unstable(); binding_names } @@ -336,8 +336,8 @@ impl<'s> PostTransformChecker<'s> { if binding_names.is_mismatch() { self.errors.push_mismatch("Bindings mismatch", scope_ids, binding_names); } else { - let symbol_ids = self.get_pair(scope_ids, |data, scope_id| { - data.scopes.get_bindings(scope_id).values().copied().collect::>() + let symbol_ids = self.get_pair(scope_ids, |scoping, scope_id| { + scoping.scopes.get_bindings(scope_id).values().copied().collect::>() }); if self.remap_symbol_ids_sets(&symbol_ids).is_mismatch() { self.errors.push_mismatch("Binding symbols mismatch", scope_ids, symbol_ids); @@ -345,14 +345,15 @@ impl<'s> PostTransformChecker<'s> { } // Check flags match - let flags = self.get_pair(scope_ids, |data, scope_id| data.scopes.get_flags(scope_id)); + let flags = + self.get_pair(scope_ids, |scoping, scope_id| scoping.scopes.get_flags(scope_id)); if flags.is_mismatch() { self.errors.push_mismatch("Scope flags mismatch", scope_ids, flags); } // Check parents match - let parent_ids = - self.get_pair(scope_ids, |data, scope_id| data.scopes.get_parent_id(scope_id)); + let parent_ids = self + .get_pair(scope_ids, |scoping, scope_id| scoping.scopes.get_parent_id(scope_id)); let is_match = match parent_ids.into_parts() { (Some(parent_id_after_transform), Some(parent_id_rebuilt)) => { let parent_ids = Pair::new(parent_id_after_transform, parent_id_rebuilt); @@ -372,27 +373,30 @@ impl<'s> PostTransformChecker<'s> { fn check_symbols(&mut self) { for symbol_ids in self.symbol_ids_map.pairs() { // Check names match - let names = - self.get_pair(symbol_ids, |data, symbol_id| data.symbols.names[symbol_id].clone()); + let names = self.get_pair(symbol_ids, |scoping, symbol_id| { + scoping.symbols.names[symbol_id].clone() + }); if names.is_mismatch() { self.errors.push_mismatch("Symbol name mismatch", symbol_ids, names); } // Check flags match - let flags = self.get_pair(symbol_ids, |data, symbol_id| data.symbols.flags[symbol_id]); + let flags = + self.get_pair(symbol_ids, |scoping, symbol_id| scoping.symbols.flags[symbol_id]); if flags.is_mismatch() { self.errors.push_mismatch("Symbol flags mismatch", symbol_ids, flags); } // Check spans match - let spans = self.get_pair(symbol_ids, |data, symbol_id| data.symbols.spans[symbol_id]); + let spans = + self.get_pair(symbol_ids, |scoping, symbol_id| scoping.symbols.spans[symbol_id]); if spans.is_mismatch() { self.errors.push_mismatch("Symbol span mismatch", symbol_ids, spans); } // Check scope IDs match - let scope_ids = - self.get_pair(symbol_ids, |data, symbol_id| data.symbols.scope_ids[symbol_id]); + let scope_ids = self + .get_pair(symbol_ids, |scoping, symbol_id| scoping.symbols.scope_ids[symbol_id]); if self.remap_scope_ids(scope_ids).is_mismatch() { self.errors.push_mismatch("Symbol scope ID mismatch", symbol_ids, scope_ids); } @@ -400,8 +404,8 @@ impl<'s> PostTransformChecker<'s> { // NB: Skip checking declarations match - transformer does not set `AstNodeId`s // Check resolved references match - let reference_ids = self.get_pair(symbol_ids, |data, symbol_id| { - data.symbols.resolved_references[symbol_id].clone() + let reference_ids = self.get_pair(symbol_ids, |scoping, symbol_id| { + scoping.symbols.resolved_references[symbol_id].clone() }); if self.remap_reference_ids_sets(&reference_ids).is_mismatch() { self.errors.push_mismatch( @@ -412,8 +416,8 @@ impl<'s> PostTransformChecker<'s> { } // Check redeclarations match - let redeclaration_spans = self.get_pair(symbol_ids, |data, symbol_id| { - let mut spans = data.symbols.get_redeclarations(symbol_id).to_vec(); + let redeclaration_spans = self.get_pair(symbol_ids, |scoping, symbol_id| { + let mut spans = scoping.symbols.get_redeclarations(symbol_id).to_vec(); spans.sort_unstable(); spans }); @@ -430,23 +434,23 @@ impl<'s> PostTransformChecker<'s> { fn check_references(&mut self) { for reference_ids in self.reference_ids_map.pairs() { // Check symbol IDs match - let symbol_ids = self.get_pair(reference_ids, |data, reference_id| { - data.symbols.references[reference_id].symbol_id() + let symbol_ids = self.get_pair(reference_ids, |scoping, reference_id| { + scoping.symbols.references[reference_id].symbol_id() }); let symbol_ids_remapped = Pair::new( symbol_ids.after_transform.map(|symbol_id| self.symbol_ids_map.get(symbol_id)), symbol_ids.rebuilt.map(Option::Some), ); if symbol_ids_remapped.is_mismatch() { - let symbol_names = self.get_pair(symbol_ids, |data, symbol_id| { - symbol_id.map(|symbol_id| data.symbols.names[symbol_id].clone()) + let symbol_names = self.get_pair(symbol_ids, |scoping, symbol_id| { + symbol_id.map(|symbol_id| scoping.symbols.names[symbol_id].clone()) }); self.errors.push_mismatch("Reference symbol mismatch", reference_ids, symbol_names); } // Check flags match - let flags = self.get_pair(reference_ids, |data, reference_id| { - data.symbols.references[reference_id].flags() + let flags = self.get_pair(reference_ids, |scoping, reference_id| { + scoping.symbols.references[reference_id].flags() }); if flags.is_mismatch() { self.errors.push_mismatch("Reference flags mismatch", reference_ids, flags); @@ -455,9 +459,9 @@ impl<'s> PostTransformChecker<'s> { } fn check_unresolved_references(&mut self) { - let unresolved_names = self.get_static_pair(|data| { + let unresolved_names = self.get_static_pair(|scoping| { let mut names = - data.scopes.root_unresolved_references.keys().cloned().collect::>(); + scoping.scopes.root_unresolved_references.keys().cloned().collect::>(); names.sort_unstable(); names }); @@ -466,10 +470,10 @@ impl<'s> PostTransformChecker<'s> { } for (name, reference_ids_after_transform) in - &self.after_transform.scopes.root_unresolved_references + &self.scoping_after_transform.scopes.root_unresolved_references { if let Some(reference_ids_rebuilt) = - &self.rebuilt.scopes.root_unresolved_references.get(name) + &self.scoping_rebuilt.scopes.root_unresolved_references.get(name) { let reference_ids = Pair::new(reference_ids_after_transform, reference_ids_rebuilt); if self.remap_reference_ids_sets(&reference_ids).is_mismatch() { @@ -483,20 +487,16 @@ impl<'s> PostTransformChecker<'s> { } /// Get same data from `after_transform` and `rebuilt` from a pair of IDs - fn get_pair R>( - &self, - ids: Pair, - getter: F, - ) -> Pair { + fn get_pair R>(&self, ids: Pair, getter: F) -> Pair { Pair::new( - getter(&self.after_transform, ids.after_transform), - getter(&self.rebuilt, ids.rebuilt), + getter(&self.scoping_after_transform, ids.after_transform), + getter(&self.scoping_rebuilt, ids.rebuilt), ) } /// Get same data from `after_transform` and `rebuilt` - fn get_static_pair R>(&self, getter: F) -> Pair { - Pair::new(getter(&self.after_transform), getter(&self.rebuilt)) + fn get_static_pair R>(&self, getter: F) -> Pair { + Pair::new(getter(&self.scoping_after_transform), getter(&self.scoping_rebuilt)) } /// Map `after_transform` scope ID to `rebuilt` scope ID