diff --git a/CLAUDE.md b/CLAUDE.md index e7d70211..31b8c23f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -187,6 +187,57 @@ NYASH_USE_NY_COMPILER=1 NYASH_PARSER_STAGE3=1 HAKO_PARSER_STAGE3=1 \ - **開発加速**: Rust パーサー強化のドライバーにもなる - **復活**: 2025-11-25 に StringBox.get() バグ修正で復活 (`4120ab65`) +#### 🔍 コード品質チェック - hako_check(Phase 153 復活!) + +**hako_check を使いながら .hako 開発するワークフロー**: + +```bash +# Step 1: .hako を実行テスト +NYASH_USE_NY_COMPILER=1 NYASH_PARSER_STAGE3=1 HAKO_PARSER_STAGE3=1 \ + ./target/release/hakorune program.hako + +# Step 2: コード品質チェック(基本チェック) +./tools/hako_check.sh program.hako + +# Step 3: デッドコード検出(Phase 153 新機能!) +./tools/hako_check.sh --dead-code program.hako +# → [HC019] unreachable method (dead code) +# → [HC019] dead static box (never referenced) + +# Step 4: 特定ルールのみチェック +./tools/hako_check.sh --rules dead_code program.hako + +# Step 5: JSON-LSP フォーマット出力(エディタ統合用) +./tools/hako_check.sh --format json-lsp --dead-code program.hako +``` + +**開発フロー例**: +```bash +# .hako ファイル編集 +vim src/compiler/my_feature.hako + +# 即座に実行テスト(cargo build 不要!) +NYASH_USE_NY_COMPILER=1 NYASH_PARSER_STAGE3=1 HAKO_PARSER_STAGE3=1 \ + ./target/release/hakorune src/compiler/my_feature.hako + +# コード品質確認(未使用関数・デッドコード検出) +./tools/hako_check.sh --dead-code src/compiler/my_feature.hako + +# 問題があれば修正 → 再実行 +# (ループ高速!セルフホスト + hako_check で完全な検証ワークフロー) +``` + +**チェック内容** (Phase 153): +- **HC011**: 呼ばれないメソッド(デッドメソッド) +- **HC012**: 参照されないスタティックボックス +- **HC019**: 到達不可能な関数・ブロック(新!デッドコード検出) +- その他: arity mismatch など 15+ ルール + +**💡 価値**: +- **JoinIR ベース**: コンパイラ側の制御フロー情報を活用(正確!) +- **.hako 移植時の安全ネット**: Phase 160+ で .hako JoinIR/MIR 移植するときの検証に使える +- **即座にフィードバック**: セルフホストの爆速開発と組み合わせ最強! + ## Start Here (必ずここから) - 現在のタスク: [CURRENT_TASK.md](CURRENT_TASK.md) - 📁 **Main**: [docs/development/current/main/](docs/development/current/main/)