feat(naming): Phase 21.7++ Phase 1 完全達成 - StaticMethodId SSOT 基盤確立
## 🎉 成果概要 **Phase 1: 基盤整備** - NamingBox SSOT の構造化された基盤完成! ### ✅ 実装完了項目(全5タスク) 1. **StaticMethodId 構造体導入** (src/mir/naming.rs:86-248) - 構造化された関数名表現: box_name, method, arity - Optional arity でパース柔軟性確保 2. **ヘルパー関数追加** - `parse()`: "Box.method/N" or "Box.method" をパース - `format()`: 構造化 ID → 文字列変換 - `with_arity()`: arity 補完用ビルダー - 互換性エイリアス: parse_global_name(), format_global_name() 3. **包括的テスト追加** (src/tests/namingbox_static_method_id.rs) - 13 テストケース全通過 ✅ - arity 有り/無し、normalize、format、round-trip、エラー処理 - エッジケース: 複数ドット、大きな arity、不正入力 4. **テスト登録** (src/tests/mod.rs:21) - Phase 21.7++ コメント付きで登録 5. **動作確認** - `cargo test --release --lib namingbox_static_method_id` - 全 13 テスト PASS (0.00s) ### 📊 技術的効果 - **SSOT 確立**: 関数名パース/フォーマットを 1 箇所に集約 - **型安全**: 構造化表現で誤用防止 - **テスト保証**: 13 ケースで安全性確保 - **後方互換**: エイリアス関数で段階移行可能 ### 🎯 Phase 2 への準備完了 - VM 側の関数ルックアップを StaticMethodId ベース化 - arity バグ根治への基盤確立 --- **Phase 0**: ✅ 完了 (Silent Failure 根絶) **Phase 1**: ✅ 完了 (SSOT 基盤確立) **Phase 2**: 次のタスク (VM 統一) 🧮 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -22,7 +22,7 @@
|
||||
|
||||
### タスク
|
||||
|
||||
- [ ] **0.1: populate_from_toml エラー即座表示**
|
||||
- [x] **0.1: populate_from_toml エラー即座表示** ✅ 完了 (2025-11-22)
|
||||
- ファイル: `src/runner/pipeline.rs:36-55`
|
||||
- 実装:
|
||||
```rust
|
||||
@ -37,7 +37,7 @@
|
||||
```
|
||||
- 検証: TOML エラー時に警告が表示されることを確認
|
||||
|
||||
- [ ] **0.2: VM 関数ルックアップ常時提案**
|
||||
- [x] **0.2: VM 関数ルックアップ常時提案** ✅ 完了 (2025-11-22)
|
||||
- ファイル: `src/backend/mir_interpreter/handlers/calls/global.rs:179-183`
|
||||
- 実装:
|
||||
```rust
|
||||
@ -69,7 +69,7 @@
|
||||
```
|
||||
- 検証: 存在しない関数呼び出し時に提案が表示されることを確認
|
||||
|
||||
- [ ] **0.3: using not found 詳細化**
|
||||
- [x] **0.3: using not found 詳細化** ✅ 完了 (2025-11-22)
|
||||
- ファイル: using resolver の該当箇所(要特定)
|
||||
- 実装:
|
||||
```rust
|
||||
@ -103,7 +103,7 @@
|
||||
```
|
||||
- 検証: 存在しないモジュール使用時に提案が表示されることを確認
|
||||
|
||||
- [ ] **0.4: テスト実行**
|
||||
- [x] **0.4: テスト実行** ✅ 完了 (2025-11-22)
|
||||
- 既存テスト全通過確認: `cargo test --release --lib`
|
||||
- StringUtils テスト: `cargo test --release --lib json_lint_stringutils_min_vm`
|
||||
|
||||
@ -117,7 +117,7 @@
|
||||
|
||||
### タスク
|
||||
|
||||
- [ ] **1.1: StaticMethodId 構造体導入**
|
||||
- [x] **1.1: StaticMethodId 構造体導入** ✅ 完了 (2025-11-22)
|
||||
- ファイル: `src/mir/naming.rs`
|
||||
- 実装:
|
||||
```rust
|
||||
@ -131,7 +131,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **1.2: ヘルパー関数追加**
|
||||
- [x] **1.2: ヘルパー関数追加** ✅ 完了 (2025-11-22)
|
||||
- ファイル: `src/mir/naming.rs`
|
||||
- 実装:
|
||||
```rust
|
||||
@ -190,7 +190,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **1.3: ミニテスト追加**
|
||||
- [x] **1.3: ミニテスト追加** ✅ 完了 (2025-11-22)
|
||||
- ファイル: `src/tests/namingbox_static_method_id.rs` (新規)
|
||||
- 実装:
|
||||
```rust
|
||||
@ -262,11 +262,11 @@
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **1.4: テスト登録**
|
||||
- [x] **1.4: テスト登録** ✅ 完了 (2025-11-22)
|
||||
- ファイル: `src/tests/mod.rs`
|
||||
- 追加: `pub mod namingbox_static_method_id;`
|
||||
|
||||
- [ ] **1.5: テスト実行**
|
||||
- [x] **1.5: テスト実行** ✅ 完了 (2025-11-22)
|
||||
- `cargo test --release --lib namingbox_static_method_id`
|
||||
- 全テスト通過確認
|
||||
|
||||
|
||||
Reference in New Issue
Block a user