nyash-codex
5c75506dcc
feat(joinir): Phase 66 - Ownership-Relay Multihop Implementation (dev-only)
Phase 65設計に基づき、relay_path.len() > 1 を analysis/plan 層で受理するよう実装。
Key changes:
- plan_to_lowering.rs: relay_path.len() > 1 制限撤去 + 構造的 Fail-Fast 維持
- relay_path.is_empty() → Err(loop relay は最低 1 hop)
- relay_path[0] != plan.scope_id → Err(この scope が最初の hop)
- relay.owner_scope == plan.scope_id → Err(relay と owned は排他)
- owned_vars ∩ relay_writes ≠ ∅ → Err(同名は不変条件違反)
- ast_analyzer.rs: 3階層 multihop テスト追加
- multihop_relay_detected_for_3_layer_nested_loops
Unit tests (plan_to_lowering):
- test_relay_multi_hop_accepted_in_with_relay
- test_relay_path_empty_rejected_in_with_relay
- test_relay_path_not_starting_at_plan_scope_rejected
- test_relay_owner_same_as_plan_scope_rejected
- test_owned_and_relay_same_name_rejected
Tests: normalized_dev 49/49 PASS, lib 947/947 PASS
Design: Analysis-only, no behavior change in production lowering
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>