refactor(plan): Phase 286C-4 Step 1 - plan_helpers module

Create helper functions to support plan_rewrites() extraction:
- build_local_block_map(): Build block ID mapping for a function
- sync_spans(): Synchronize instruction spans after rewriting

These pure functions will be used by both the current monolithic
merge_and_rewrite() and the new plan_rewrites() function.

Progress: Step 1/4 (helpers) complete

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-25 03:53:42 +09:00
parent 875c5e02fd
commit a40ee8dda5
6 changed files with 137 additions and 6 deletions

View File

@ -33,7 +33,7 @@ This Phase document is not the language SSOT; it tracks implementation status, b
See `docs/development/current/main/phases/phase-285/phase-285a1-boxification.md`.
- WeakRef E2E (VM): `weak(x)` + `weak_to_strong()`, plus strict weak-field contract (no implicit weakification).
- WeakRef E2E (VM/LLVM harness): `weak <expr>` + `weak_to_strong()`, plus strict weak-field contract (no implicit weakification).
- Visibility support: `public { weak parent }` plus sugar `public weak parent` (same meaning).
- Parser robustness: parameter type annotations (`arg: Type`) are rejected with a clear parse error (no hang).
- Helper: `src/parser/common/params.rs`
@ -83,7 +83,7 @@ See `docs/development/current/main/phases/phase-285/phase-285a1-boxification.md`
The runbook assumes WeakRef infrastructure exists in the VM and lowering.
If any of the following are missing, treat weak smokes as **unsupported** and scope to exit-time leak report first:
- `weak(x)` parse/lower
- `weak <expr>` parse/lower (and `weak(...)` is rejected)
- VM handler for MIR WeakRef/WeakNew/WeakLoad
- language-surface `weak_to_strong()` on WeakRef