feat(joinir): Phase 201 - JoinInlineBoundaryBuilder expansion to Pattern3/4
- Task 201-1: Established canonical Builder pattern documentation - Created docs/development/current/main/joinir-boundary-builder-pattern.md - Documented Builder usage patterns for all patterns (P1/P2/P3/P4) - Added reference comments in pattern lowerers - Task 201-2: Refactored Pattern3 to use Builder (removed field mutations) - Replaced new_with_exit_bindings + field mutation with Builder chain - Pattern3: 2 carriers (i + sum), exit_bindings, loop_var_name - Proper LoopExitBinding struct usage - Task 201-3: Refactored Pattern4 to use Builder (continue/Trim support) - Replaced new_with_exit_bindings + field mutation with Builder chain - Pattern4: Dynamic carrier count, proper boundary construction - Task 201-4: Added unit tests for Pattern3/4 style boundaries - test_builder_pattern3_style: Two carriers, exit_bindings validation - test_builder_pattern4_style: Dynamic carrier count validation - Verified no field mutations remain (exit_binding.rs uses deprecated fields only) - Task 201-5: Updated architecture docs and CURRENT_TASK - joinir-architecture-overview.md: Builder now applied to all patterns - CURRENT_TASK.md: Phase 201 completion entry All patterns now use consistent boundary construction via Builder. Tests: All patterns pass (挙動不変).
This commit is contained in:
@ -171,12 +171,12 @@ JoinIR ラインで守るべきルールを先に書いておくよ:
|
||||
- 変数再接続はヘッダ PHI の dst を使って `builder.variable_map` を更新(Reconnector)。
|
||||
- expr 用の PHI には一切触れない(carrier 専用ライン)。
|
||||
|
||||
- **JoinInlineBoundaryBuilder(Phase 200-2 追加)**
|
||||
- **JoinInlineBoundaryBuilder(Phase 200-2 / Phase 201 完了)**
|
||||
- ファイル: `src/mir/join_ir/lowering/inline_boundary_builder.rs`
|
||||
- 責務:
|
||||
- JoinInlineBoundary の構築を Builder パターンで統一化。
|
||||
- フィールド直書きの散乱を防ぎ、inputs/outputs/condition_bindings/exit_bindings/loop_var_name/expr_result の設定を fluent API で実施。
|
||||
- Pattern2 で試験導入済み(Pattern3/4 は将来適用予定)。
|
||||
- **Phase 201 で Pattern1/2/3/4 全てに適用完了**(境界情報組み立てを 1 箇所に集約)。
|
||||
|
||||
- **JoinIRVerifier(Phase 200-3 追加)**
|
||||
- ファイル: `src/mir/builder/control_flow/joinir/merge/mod.rs`(debug_assertions 専用関数)
|
||||
|
||||
Reference in New Issue
Block a user