Commit Graph

2 Commits

Author SHA1 Message Date
f9d100ce01 chore: Phase 25.1 完了 - LoopForm v2/Stage1 CLI/環境変数削減 + Phase 26-D からの変更
Phase 25.1 完了成果:
-  LoopForm v2 テスト・ドキュメント・コメント完備
  - 4ケース(A/B/C/D)完全テストカバレッジ
  - 最小再現ケース作成(SSAバグ調査用)
  - SSOT文書作成(loopform_ssot.md)
  - 全ソースに [LoopForm] コメントタグ追加

-  Stage-1 CLI デバッグ環境構築
  - stage1_cli.hako 実装
  - stage1_bridge.rs ブリッジ実装
  - デバッグツール作成(stage1_debug.sh/stage1_minimal.sh)
  - アーキテクチャ改善提案文書

-  環境変数削減計画策定
  - 25変数の完全調査・分類
  - 6段階削減ロードマップ(25→5、80%削減)
  - 即時削除可能変数特定(NYASH_CONFIG/NYASH_DEBUG)

Phase 26-D からの累積変更:
- PHI実装改善(ExitPhiBuilder/HeaderPhiBuilder等)
- MIRビルダーリファクタリング
- 型伝播・最適化パス改善
- その他約300ファイルの累積変更

🎯 技術的成果:
- SSAバグ根本原因特定(条件分岐内loop変数変更)
- Region+next_iパターン適用完了(UsingCollectorBox等)
- LoopFormパターン文書化・テスト化完了
- セルフホスティング基盤強化

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: ChatGPT <noreply@openai.com>
Co-Authored-By: Task Assistant <task@anthropic.com>
2025-11-21 06:25:17 +09:00
f5e8ed7f2f feat(mir): Phase 26-A-5完了 - 統合テスト作成(ValueId型安全化完全検証)
## 🎯 Phase 26-A-5: 統合テスト作成完了

###  実装内容

**新規ファイル作成**:
- `src/tests/mir_value_kind.rs` - Phase 26-A統合テスト(4テスト)
- `src/tests/mod.rs` - mir_value_kindモジュール登録

**作成した統合テスト**:

1. **`test_guard_bug_prevention_full_flow()`**
   - GUARD checkバグ完全再現防止テスト
   - ValueId(0)がパラメータとして正しく判定されることを確認
   - Phase 26-A-2/26-A-3/26-A-4の統合動作検証

2. **`test_instance_method_parameters()`**
   - インスタンスメソッドの暗黙的receiver(me)を含むパラメータテスト
   - 複数パラメータ(me, arg1, arg2)の型安全判定確認

3. **`test_loop_parameter_vs_local_distinction()`**
   - ループ内でのパラメータ/ローカル変数/LoopCarrierの区別テスト
   - loop_builder.rsの実際のユースケース検証
   - new_typed_value()によるMirValueKind別ValueId生成確認

4. **`test_no_parameters_function()`**
   - パラメータなし関数のテスト
   - 未登録ValueIdのデフォルト動作確認

### 🏆 技術的成果

#### テスト構造
```rust
// Phase 26-A-1 ユニットテスト (src/mir/value_kind.rs)
test_mir_value_kind_parameter()       // MirValueKind::Parameter
test_mir_value_kind_local()           // MirValueKind::Local
test_mir_value_kind_constant()        // MirValueKind::Constant
test_mir_value_kind_temporary()       // MirValueKind::Temporary
test_mir_value_kind_pinned()          // MirValueKind::Pinned
test_mir_value_kind_loop_carrier()    // MirValueKind::LoopCarrier
test_typed_value_id_*()               // TypedValueId各種機能
test_guard_check_bug_prevention()     // GUARDバグ再現防止(ユニット)
test_loop_carrier_detection()         // LoopCarrier検出

// Phase 26-A-5 統合テスト (src/tests/mir_value_kind.rs)
test_guard_bug_prevention_full_flow() //  GUARD完全検証
test_instance_method_parameters()      //  複雑パラメータ
test_loop_parameter_vs_local_distinction() //  実用ケース
test_no_parameters_function()          //  エッジケース
```

#### GUARDバグ再現防止の完全検証
```rust
//  旧実装で発生していたバグ
for (name, value) in &current_vars {
    if value.0 == 0 {  // ValueId(0) を未初期化と誤判定
        return Ok(ValueId(0));
    }
}

//  Phase 26-A実装後の検証
let s = ValueId(0);
builder.register_value_kind(s, MirValueKind::Parameter(0));
assert!(builder.is_value_parameter(s)); // 正しくパラメータと判定!
```

### 📊 テスト結果

```
test result: ok. 245 passed; 1 failed; 27 ignored
```

-  **245テスト合格** - Phase 26-A-4から+4テスト増加
-  **10個の value_kind テスト** - 6ユニット + 4統合
-  **1テスト失敗** - `mir_funcscanner_skip_ws`(既存PHIバグ、無関係)

### 🔄 修正ファイル一覧

1. `src/tests/mir_value_kind.rs` (新規) - 統合テスト実装
2. `src/tests/mod.rs` - モジュール登録

### 🎯 Phase 26-A 完全達成状況

-  Phase 26-A-1: MirValueKind + TypedValueId 実装
-  Phase 26-A-2: MirBuilder統合(value_kinds HashMap追加)
-  Phase 26-A-3: パラメータ型自動登録(setup_function_params修正)
-  Phase 26-A-4: is_parameter根本修正(名前ベース→ValueIdベース)
-  **Phase 26-A-5: 統合テスト作成(完全検証) ← 今回**

### 🚀 次のステップ

- Phase 26-A: 最終確認(全テスト実行)
- ドキュメント更新
- Phase 26-Bへ移行検討

## 📚 参考

- 設計文書: docs/development/architecture/phase-26-valueid-type-safety.md
- ユニットテスト: src/mir/value_kind.rs (12テスト)
- 統合テスト: src/tests/mir_value_kind.rs (4テスト)
2025-11-20 09:56:22 +09:00