feat(mir): Phase 131-11-F - MIR JSON metadata 出力実装

## 実装内容
- mir_json_emit.rs に function-level metadata 追加
- PHI 命令に dst_type ヒント追加
- v0/v1 両 emitter で実装

## 成果物
-  metadata.value_types を JSON に出力
-  PHI dst_type を metadata から取得
-  ビルド成功(0 エラー)

## JSON 出力例
```json
{
  "functions": [{
    "metadata": {
      "value_types": {
        "1": "i64",
        "3": "i64"
      }
    }
  }]
}
```

## 既知の問題(Phase 131-11-E 再調査必要)
- MIR dump で PHI が String 型のまま
- Phase 131-11-E の TypeFacts 分離が完全に動作していない可能性

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-12-14 19:34:02 +09:00
parent 29d96b94e6
commit 413504d6de
4 changed files with 95 additions and 43 deletions

View File

@ -1,6 +1,6 @@
# JoinIR Design Map現役の地図
Status: Active
Status: SSOTnavigation
Scope: JoinIR の「Loop/If を JoinIR 化して MIR に統合する」導線検出→shape guard→lower→merge→契約検証
Related:
- SSOT: [`docs/development/current/main/joinir-architecture-overview.md`](../joinir-architecture-overview.md)
@ -10,6 +10,17 @@ Related:
このドキュメントは Phase ログではなく、「JoinIR を触る人が迷子にならず、どこを直すべきかが一発で分かる」ための設計図(地図)です。
詳細な経緯・作業ログは `docs/development/current/main/phases/``docs/development/current/main/investigations/` に分離します。
## 役割分担joinir-architecture-overview との分離)
このファイルは「実装導線の地図」の SSOT ですnavigation SSOT
意味論・契約・不変条件の本文normative`docs/development/current/main/joinir-architecture-overview.md` を SSOT とします。
使い分け:
- 「JoinIR が何を保証し、何を Fail-Fast で落とすべきか」→ `joinir-architecture-overview.md`
- 「どのファイルを触るべきか」「入口はどこか」「追加手順は?」→ この `joinir-design-map.md`
- 「経緯/ログ/切り分け」→ `docs/development/current/main/phases/``docs/development/current/main/investigations/`
---
## 1枚図: レイヤーAST → JoinIR → MIR → Backend