diff --git a/src/mir/builder/control_flow/joinir/patterns/mod.rs b/src/mir/builder/control_flow/joinir/patterns/mod.rs index b366111a..f37cc31a 100644 --- a/src/mir/builder/control_flow/joinir/patterns/mod.rs +++ b/src/mir/builder/control_flow/joinir/patterns/mod.rs @@ -53,7 +53,6 @@ pub(in crate::mir::builder) mod ast_feature_extractor; pub(in crate::mir::builder) mod policies; // Phase 93/94: Pattern routing policies (future expansion) pub(in crate::mir::builder) mod body_local_policy; // Phase 92 P3: promotion vs slot routing pub(in crate::mir::builder) mod escape_pattern_recognizer; // Phase 91 P5b -pub(in crate::mir::builder) mod p5b_escape_derived_policy; // Phase 94: derived `ch` + conditional counter pub(in crate::mir::builder) mod common_init; pub(in crate::mir::builder) mod condition_env_builder; pub(in crate::mir::builder) mod conversion_pipeline; diff --git a/src/mir/builder/control_flow/joinir/patterns/pattern2_with_break.rs b/src/mir/builder/control_flow/joinir/patterns/pattern2_with_break.rs index 48b24e4a..1a78d9fe 100644 --- a/src/mir/builder/control_flow/joinir/patterns/pattern2_with_break.rs +++ b/src/mir/builder/control_flow/joinir/patterns/pattern2_with_break.rs @@ -17,7 +17,9 @@ use crate::mir::join_ir::lowering::loop_update_analyzer::UpdateExpr; use crate::mir::loop_pattern_detection::error_messages; use crate::mir::loop_pattern_detection::function_scope_capture::CapturedEnv; use crate::mir::ValueId; -use super::p5b_escape_derived_policy::{classify_p5b_escape_derived, P5bEscapeDerivedDecision}; +use super::policies::p5b_escape_derived_policy::{ + classify_p5b_escape_derived, P5bEscapeDerivedDecision, +}; use std::collections::BTreeMap; struct Pattern2DebugLog { diff --git a/src/mir/builder/control_flow/joinir/patterns/policies/README.md b/src/mir/builder/control_flow/joinir/patterns/policies/README.md index cad994dc..439ad155 100644 --- a/src/mir/builder/control_flow/joinir/patterns/policies/README.md +++ b/src/mir/builder/control_flow/joinir/patterns/policies/README.md @@ -36,7 +36,7 @@ --- ### p5b_escape_derived_policy.rs (Phase 94) -**現在の場所**: `patterns/p5b_escape_derived_policy.rs` +**現在の場所**: `patterns/policies/p5b_escape_derived_policy.rs` **責務**: P5b escapeパターン認識とBodyLocalDerivedルーティング @@ -51,8 +51,7 @@ - `P5bEscapeDerivedDecision::None` - 該当なし **将来的な整理**: -- policies/へ移動してpolicy箱として統一 -- 現在はpatterns/直下に配置 +- policies/配下でpolicy箱として統一済み(Phase 96) --- diff --git a/src/mir/builder/control_flow/joinir/patterns/policies/mod.rs b/src/mir/builder/control_flow/joinir/patterns/policies/mod.rs index 67142e8a..a4e9034a 100644 --- a/src/mir/builder/control_flow/joinir/patterns/policies/mod.rs +++ b/src/mir/builder/control_flow/joinir/patterns/policies/mod.rs @@ -14,16 +14,14 @@ //! - **Fail-Fast**: パターンマッチング失敗は即座にReject/Noneを返す //! //! ## 将来の拡張 -//! 現在はpolicies/ディレクトリの準備段階です。 -//! 既存のpolicy関連ファイル(p5b_escape_derived_policy.rs, body_local_policy.rs等)は -//! patterns/直下に配置されていますが、将来的にこのディレクトリへ移動する予定です。 +//! policies/ は「認識とルーティング決定(policy)」を分離する受け皿です。 +//! Phase 94(P5b derived)から段階的に移設を開始しました。 //! //! ### 段階的な移行計画 -//! - Phase 1: ディレクトリ準備(今回) ✅ -//! - Phase 2: 既存policy箱の移動(将来) +//! - Phase 1: ディレクトリ準備 ✅ +//! - Phase 2: 既存policy箱の移動(進行中) //! - Phase 3: インターフェース統一(将来) //! //! 詳細は [README.md](README.md) を参照してください。 -// 現在は空モジュール(将来の拡張用) -// 既存のpolicy関連ファイルは親モジュール(patterns/)に配置されています +pub(in crate::mir::builder) mod p5b_escape_derived_policy; diff --git a/src/mir/builder/control_flow/joinir/patterns/p5b_escape_derived_policy.rs b/src/mir/builder/control_flow/joinir/patterns/policies/p5b_escape_derived_policy.rs similarity index 99% rename from src/mir/builder/control_flow/joinir/patterns/p5b_escape_derived_policy.rs rename to src/mir/builder/control_flow/joinir/patterns/policies/p5b_escape_derived_policy.rs index 27c5f2ce..d7c63453 100644 --- a/src/mir/builder/control_flow/joinir/patterns/p5b_escape_derived_policy.rs +++ b/src/mir/builder/control_flow/joinir/patterns/policies/p5b_escape_derived_policy.rs @@ -33,7 +33,7 @@ pub fn classify_p5b_escape_derived( body: &[ASTNode], loop_var_name: &str, ) -> P5bEscapeDerivedDecision { - let Some(info) = super::ast_feature_extractor::detect_escape_skip_pattern(body) else { + let Some(info) = super::super::ast_feature_extractor::detect_escape_skip_pattern(body) else { return P5bEscapeDerivedDecision::None; };