Commit Graph

2 Commits

Author SHA1 Message Date
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