|
|
41a655320a
|
HC021+HC031完全実装: Analyzer IO Safety + Brace Heuristics
## 実装完了
- ✅ HC021 (Analyzer IO Safety): FileBox直接使用を検出
- ✅ HC031 (Brace Heuristics): ブレース不一致をファイルレベルで検出
## 修正内容
1. **cli.hako**: charCodeAt除去(StringBox未実装メソッド)
- fancy quote変換ロジック削除(CRLF正規化のみ残す)
2. **HC031 line番号修正**:
- 問題: "mismatch:" のコロンが line番号解析と干渉
- 修正: "mismatch -" に変更 + ":: path:1" 明示追加
3. **HC021 expected.json更新**:
- --rules filtering動作確認済み
- 他ルールのwarning削除(HC012/HC014/HC022)
## テスト結果
```
[TEST/OK] HC011, HC012, HC015-HC018, HC021, HC022, HC031 ✅
[TEST/FAIL] HC013, HC014 (expected.json古い、要更新)
```
## 技術ノート
- PHI pred mismatch: 現在のコードで再現不可
- 歴史的修正(phi_merge_helper.rs)で既に解決済みの可能性
- ホットフィックス(no_ast=1デフォルト)も寄与
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-08 12:20:25 +09:00 |
|
|
|
375edb2a1b
|
HC021 implementation complete: Analyzer IO Safety
✅ Implementation:
- tools/hako_check/rules/rule_analyzer_io_safety.hako: New rule detecting direct I/O in analyzer rules
- Detects: new FileBox(), .open(), .read(), .write(), network I/O
- CLI-internal push approach: rules should receive data through parameters
- Successfully detects FileBox usage in rule_dead_methods.hako:13-14
✅ Tests:
- tools/hako_check/tests/HC021_analyzer_io_safety/: Complete test suite
- ok.hako: Safe rule using CLI-internal push approach
- ng.hako: Unsafe rule using direct FileBox I/O (3 warnings expected)
- Test passes with all diagnostics matching
✅ Integration:
- tools/hako_check/cli.hako: Added HC021 rule invocation
- All existing tests (HC011-HC022) remain green
🎯 Achievement:
- Priority task completed as requested
- Validates "CLI内push案" (CLI-internal push approach) design
- Encourages safer analyzer rule development
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-08 04:17:38 +09:00 |
|