feat(joinir): Phase 224-D - ConditionAlias for promoted variable resolution
- Add ConditionAlias type to CarrierInfo (old_name → carrier_name) - Record aliases in DigitPosPromoter and TrimPatternInfo - Resolve aliases in Pattern2 ConditionEnv building - digit_pos now correctly resolves to is_digit_pos carrier Fixes "Variable 'digit_pos' not bound in ConditionEnv" error. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -69,6 +69,13 @@
|
||||
- **Root Cause**: Break condition AST が元の変数名(digit_pos)を保持したまま lowerer に渡される
|
||||
- **Next Steps**: Option B(promoted variable tracking)で lowerer に昇格済み変数を通知する仕組みを追加(1-2h)
|
||||
- **詳細**: [PHASE_224_SUMMARY.md](docs/development/current/main/PHASE_224_SUMMARY.md)
|
||||
- **Phase 224-D 完了** ✅: ConditionAlias 導入(昇格変数の条件参照解決)
|
||||
- **ConditionAlias 型追加**: `CarrierInfo` に `condition_aliases: Vec<ConditionAlias>` フィールド追加
|
||||
- **Promoter 側記録**: DigitPosPromoter / TrimPatternInfo が昇格時に alias を記録(`digit_pos` → `is_digit_pos`)
|
||||
- **Pattern2 統合**: 昇格・merge 後に join_id 割り当て、ConditionEnv に alias を追加(`digit_pos` → ValueId(104))
|
||||
- **CarrierInfo 構造修正**: DigitPosPromoter が carriers list に追加する形に変更(loop_var_name 置換ではなく)
|
||||
- **検証**: `phase2235_p2_digit_pos_min.hako` で alias 解決成功、エラーが次段階(substring init)に進展
|
||||
- **残課題**: substring method in body-local init(Phase 193 limitation)
|
||||
|
||||
### 2. JsonParser / Trim / selfhost への適用状況
|
||||
|
||||
|
||||
Reference in New Issue
Block a user