Files
hakorune/src/mir/builder/observe
nyash-codex 44b20bfe28 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 
2025-12-16 03:33:56 +09:00
..

observe — Builder 観測devonly/既定OFF

目的

  • Builder 内部の決定resolve.try/choose, ssa.phi など)を JSONL で観測する。
  • 環境変数で明示有効化された時のみ動作既定OFF。言語仕様・実行結果は不変。

責務

  • ssa.rs: emit_phi — PHI の決定pred の type/origin、dst の決定)を DebugHub へ emit。
  • resolve.rs: emit_try / emit_choose — メソッド解決の候補/最終選択を emit。

非責務(禁止)

  • MIR 命令の生成/変更は行わない(副作用なし)。
  • 起源付与や型推論は origin 層に限定。

トグルDebugHub 側でガード)

  • NYASH_DEBUG_ENABLE=1
  • NYASH_DEBUG_KINDS=resolve,ssa
  • NYASH_DEBUG_SINK=/path/to/file.jsonl

レイヤールール

  • Allowed: DebugHub emit、Builder の読み取り(関数名/region_id/メタ)。
  • Forbidden: rewrite/origin の機能をここに持ち込まない。