151 lines
4.9 KiB
Markdown
151 lines
4.9 KiB
Markdown
# 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)
|