Files
hakorune/docs/development/current/main/investigations/legacy-candidates.md

4.9 KiB
Raw Blame History

Legacy 候補一覧

Phase 256+ で特定された、将来削除可能な legacy コード候補を記録する。


Phase 256 P1.7 で特定された legacy

join_func_name() (src/mir/join_ir_vm_bridge/mod.rs)

状態: 未使用になった可能性あり(要精査)

理由:

  • Phase 256 P1.7 で continuation_func_idsString ベースに変更
  • join_func_name() による JoinFuncId → String 変換が不要になった可能性
  • JoinFunction の name フィールドが直接利用可能

残利用箇所: 11箇所 + 定義1箇所 = 計12箇所

実利用箇所10箇所

  1. src/mir/join_ir_vm_bridge/runner.rs:55

    let entry_name = join_func_name(entry_func);
    
    • 用途: VM実行時のエントリーポイント関数名取得
    • 状態: 実利用Phase 27-shortterm S-4.3
  2. src/mir/join_ir_vm_bridge/joinir_block_converter.rs:162

    let func_name = join_func_name(*func);
    
    • 用途: JoinIR ブロック変換時の関数名取得
    • 状態: 実利用Phase 190
  3. src/mir/join_ir_vm_bridge/normalized_bridge/direct.rs:94

    name: join_func_name(JoinFuncId(func.id.0)),
    
    • 用途: Normalized → MIR 変換時の関数署名生成
    • 状態: 実利用Phase 141+
    • 条件: #[cfg(feature = "normalized_dev")]
  4. src/mir/join_ir_vm_bridge/normalized_bridge/direct.rs:182

    let func_name = join_func_name(JoinFuncId(target.0));
    
    • 用途: Normalized 関数ターゲット名取得
    • 状態: 実利用Phase 141+
    • 条件: #[cfg(feature = "normalized_dev")]
  5. src/mir/join_ir_vm_bridge/joinir_function_converter.rs:39

    .insert(join_func_name(*func_id), mir_func);
    
    • 用途: MIR モジュールへの関数登録
    • 状態: 実利用Phase 190
  6. src/mir/builder/control_flow/joinir/merge/tail_call_lowering_policy.rs:100

    let k_exit_name = join_func_name(JoinFuncId::new(2));
    
    • 用途: テストコード内での k_exit 関数名生成
    • 状態: テスト専用(#[cfg(test)]
  7. src/mir/control_tree/normalized_shadow/loop_true_break_once.rs:63

    use crate::mir::join_ir_vm_bridge::join_func_name;
    
    • 用途: テストコード内での関数名取得
    • 状態: テスト専用(#[cfg(test)]

コメント参照箇所3箇所

  1. src/mir/builder/control_flow/joinir/merge/instruction_rewriter.rs

    // No need to convert with join_func_name() - use directly
    
    • 用途: コメント(変換不要の説明)
    • 状態: ドキュメント
  2. src/mir/join_ir_vm_bridge/meta.rs

    // Phase 256 P1.7: Use actual function name instead of join_func_name()
    // join_func_name() produces "join_func_{id}" but JoinFunction.name contains
    
    • 用途: コメントPhase 256 P1.7 の設計変更説明)
    • 状態: ドキュメント
  3. src/mir/builder/control_flow/joinir/patterns/pattern7_split_scan.rs

    // The bridge uses JoinFunction.name as the MirModule function key, not join_func_name(id)
    
    • 用途: コメントPattern 7 の設計説明)
    • 状態: ドキュメント

定義箇所1箇所

  1. src/mir/join_ir_vm_bridge/mod.rs
    pub(crate) fn join_func_name(id: JoinFuncId) -> String {
    
    • 用途: 関数定義
    • 状態: pub(crate) で公開

推奨アクション

短期Phase 256 P1.7 スコープ外)

  • このドキュメントに記録完了
  • 実装変更は行わない(記録のみ)

中期Phase 257+ で検討)

  1. 段階的移行案:

    • Step 1: 新規コードでは JoinFunction.name を直接使用
    • Step 2: 既存の10実利用箇所を段階的に置換
    • Step 3: テストコード2箇所を置換
    • Step 4: コメント更新3箇所
    • Step 5: join_func_name() 削除
  2. 影響範囲:

    • Bridge 層: 7箇所実利用6 + テスト1
    • Normalized 層: 2箇所feature gated
    • Control flow builder: 1箇所テストのみ
    • Control tree: 1箇所テストのみ
  3. リスク評価:

    • 低: テストコードのみ2箇所
    • 中: Bridge 層の実利用7箇所
    • 高: Normalized 層feature gated, 現在開発中)
  4. 優先度: 低(現在問題なし、技術的負債削減として)


メンテナンス

  • 作成日: 2025-12-20
  • 最終更新: 2025-12-20
  • 関連 Phase: 256 P1.7
  • 関連コミット: (Phase 256 P1.7 完了後に記入)

参考リンク