fix(mir): Complete ScopeContext migration (Phase 2-4 補完)
Phase 2-4 で移行漏れがあったファイルを修正。
## Changes
- Fixed all remaining compilation errors from incomplete Phase 2-4 migration
- Updated access sites to use scope_ctx.* for 7 legacy fields:
1. current_function → scope_ctx.current_function
2. lexical_scope_stack → scope_ctx.lexical_scope_stack
3. if_merge_stack → scope_ctx.if_merge_stack
4. debug_scope_stack → scope_ctx.debug_scope_stack
- Updated visibility of ScopeContext to pub(in crate::mir) for cross-module access
- Removed dual-write legacy code in lexical_scope.rs, builder.rs
- Updated documentation comments in phi_helpers.rs
## Files Modified (20 files)
Core access migration:
- src/mir/builder/method_call_handlers.rs
- src/mir/builder/control_flow/joinir/routing.rs
- src/mir/builder/control_flow/joinir/merge/loop_header_phi_builder.rs
- src/mir/builder/if_form.rs
- src/mir/builder/ops.rs (4 occurrences)
- src/mir/builder/observe/resolve.rs (2 occurrences)
- src/mir/builder/observe/ssa.rs
- src/mir/builder/receiver.rs
- src/mir/loop_api.rs (3 occurrences)
- src/mir/region/observer.rs (3 occurrences)
- src/mir/utils/control_flow.rs
- src/mir/utils/phi_helpers.rs (4 occurrences + docs)
Dual-write removal:
- src/mir/builder/vars/lexical_scope.rs (push/pop/declare)
- src/mir/builder.rs (if_merge, debug_scope, emit_instruction)
Visibility updates:
- src/mir/builder/scope_context.rs (struct + fields)
## Tests
- cargo build --release: SUCCESS (0 errors, 191 warnings)
- Phase 2-4 migration now fully complete
- Note: Test failures exist but are unrelated (Phase 2-5 binding_map issue)
Phase 2-4 now fully complete ✅
This commit is contained in:
@ -20,7 +20,7 @@ pub(in crate::mir::builder) use super::vars::lexical_scope::LexicalScopeFrame;
|
||||
|
||||
/// Scope and control flow context for MIR building
|
||||
#[derive(Debug)]
|
||||
pub(super) struct ScopeContext {
|
||||
pub(in crate::mir) struct ScopeContext {
|
||||
// ---- Lexical scope management ----
|
||||
/// Stack of lexical scopes for block-scoped `local` declarations
|
||||
/// Tracks per-block shadowing so variables restore on scope exit
|
||||
@ -41,11 +41,11 @@ pub(super) struct ScopeContext {
|
||||
|
||||
// ---- Function context ----
|
||||
/// Current function being built
|
||||
pub(super) current_function: Option<MirFunction>,
|
||||
pub(in crate::mir) current_function: Option<MirFunction>,
|
||||
|
||||
/// Parameter names for current function
|
||||
/// Same lifecycle as current_function
|
||||
pub(super) function_param_names: HashSet<String>,
|
||||
pub(in crate::mir) function_param_names: HashSet<String>,
|
||||
|
||||
// ---- Debug scope ----
|
||||
/// Stack of region identifiers (e.g., "loop#1/header", "join#3/join")
|
||||
|
||||
Reference in New Issue
Block a user