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

151 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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_ids``String` ベースに変更
- `join_func_name()` による `JoinFuncId → String` 変換が不要になった可能性
- JoinFunction の `name` フィールドが直接利用可能
**残利用箇所**: 11箇所 + 定義1箇所 = 計12箇所
#### 実利用箇所10箇所
1. **src/mir/join_ir_vm_bridge/runner.rs:55**
```rust
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**
```rust
let func_name = join_func_name(*func);
```
- 用途: JoinIR ブロック変換時の関数名取得
- 状態: 実利用Phase 190
3. **src/mir/join_ir_vm_bridge/normalized_bridge/direct.rs:94**
```rust
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**
```rust
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**
```rust
.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**
```rust
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**
```rust
use crate::mir::join_ir_vm_bridge::join_func_name;
```
- 用途: テストコード内での関数名取得
- 状態: テスト専用(`#[cfg(test)]`
#### コメント参照箇所3箇所
8. **src/mir/builder/control_flow/joinir/merge/instruction_rewriter.rs**
```rust
// No need to convert with join_func_name() - use directly
```
- 用途: コメント(変換不要の説明)
- 状態: ドキュメント
9. **src/mir/join_ir_vm_bridge/meta.rs**
```rust
// 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 の設計変更説明)
- 状態: ドキュメント
10. **src/mir/builder/control_flow/joinir/patterns/pattern7_split_scan.rs**
```rust
// The bridge uses JoinFunction.name as the MirModule function key, not join_func_name(id)
```
- 用途: コメントPattern 7 の設計説明)
- 状態: ドキュメント
#### 定義箇所1箇所
11. **src/mir/join_ir_vm_bridge/mod.rs**
```rust
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 完了後に記入)
---
## 参考リンク
- Phase 256 P1.7 設計: [phase-256/README.md](../phases/phase-256/README.md)
- JoinIR 設計マップ: [design/joinir-design-map.md](../design/joinir-design-map.md)
- JoinIR アーキテクチャ: [joinir-architecture-overview.md](../joinir-architecture-overview.md)