---
generated_at: 2026-02-22 12:00:00
metrics:
  claims_total: 250
  claims_with_evidence: 237
  claims_without_evidence: 13
confidence_derived: 0.95
---

# 根拠レポート：mruby-compiler 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：237 / 250、根拠なし：13
- 優先レビュー（高）
  1. **codegen関数のノードタイプ別コード生成テスト（C-205〜C-221）**：codegenメイン関数は約5000行と巨大であり、各ノードタイプの処理詳細を完全に読み取れていない可能性がある
  2. **search_upvar関数のエラー条件（C-244）**：エラー呼び出し条件の正確な仕様が前方宣言のみで実装本体を確認できていない
  3. **parse.yのyylex/yyparse内部ロジック（関連テスト全般）**：自動生成されるy.tab.c経由のパーサロジックは直接解析困難

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `mrbgems/mruby-compiler/core/codegen.c` - コード生成メインファイル（約7300行）
- E-02: `mrbgems/mruby-compiler/core/parse.y` - パーサ定義ファイル（約7885行）
- E-03: `mrbgems/mruby-compiler/core/node.h` - ASTノード型定義ヘッダ（784行）
- E-04: `docs/code-to-docs/単体テストケース一覧/plan.md` - テスト計画文書
- E-05: `mrbgems/mruby-compiler/core/lex.def` - レキサー定義ファイル
- E-06: `mrbgems/mruby-compiler/core/keywords` - キーワード定義ファイル

## 3) Claims と根拠の対応（レビューの主戦場）

### パーサ（parse.y）関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | mrb_parser_newでparser_stateが正しく初期化される | E-02 (行7551-7591) | ○ |
| C-002 | パーサの初期フィールド値が正しい | E-02 (行7563-7588) | ○ |
| C-003 | メモリプール確保失敗時にNULLが返る | E-02 (行7558-7561) | ○ |
| C-004 | mrb_parser_freeでリソースが解放される | E-02 (行7593-7599) | ○ |
| C-005 | 拡張トークンバッファの解放 | E-02 (行7595-7596) | ○ |
| C-006 | mrb_parser_parseで正しいコードがパースされる | E-02 (行7512-7549) | ○ |
| C-007 | 構文エラー時にnerr>0 | E-02 (行7529-7531) | ○ |
| C-008 | メモリ確保失敗時にnerr増加 | E-02 (行7539-7545) | ○ |
| C-009 | mrb_parser_set_filenameでファイル名が登録される | E-02 (行7653-7683) | ○ |
| C-010 | 同一ファイル名の重複登録防止 | E-02 (行7664-7668) | ○ |
| C-011 | UINT16_MAX到達時のエラー | E-02 (行7671-7673) | ○ |
| C-012 | mrb_parser_get_filenameで有効インデックスのシンボル取得 | E-02 (行7685-7691) | ○ |
| C-013 | 範囲外インデックスで0が返る | E-02 (行7687) | ○ |
| C-014 | mrb_parse_stringでASTが生成される | E-02 (行7735-7739) | ○ |
| C-015 | mrb_parse_nstringで長さ指定パース | E-02 (行7721-7733) | ○ |
| C-016 | 長さ0の文字列パース | E-02 (行7722-7733) | ○ |
| C-017 | mrb_load_stringで実行結果が返る | E-02 (行7880-7884) | ○ |
| C-018 | mrb_load_string_cxtでコンテキスト付きロード | E-02 (行7874-7878) | ○ |
| C-019 | パースエラー時の例外設定 | E-02 (行7741-7803) | ○ |
| C-020 | mrb_ccontext_newでコンテキスト生成 | E-02 (行7601-7608) | ○ |
| C-021 | mrb_ccontext_freeでリソース解放 | E-02 (行7610-7616) | ○ |
| C-022 | mrb_ccontext_filenameでファイル名設定 | E-02 (行7618-7633) | ○ |
| C-023 | 既存ファイル名の上書き | E-02 (行7627-7629) | ○ |
| C-024 | mrb_ccontext_partial_hookの設定 | E-02 (行7635-7640) | ○ |
| C-025 | mrb_ccontext_cleanup_local_variablesの動作 | E-02 (行7642-7651) | ○ |
| C-026 | cons_genでconsセル生成 | E-02 (行127-143) | ○ |
| C-027 | フリーリストからの再利用 | E-02 (行132-135) | ○ |
| C-028 | list1_genで1要素リスト生成 | E-02 (行174-179) | ○ |
| C-029 | list2_genで2要素リスト生成 | E-02 (行181-186) | ○ |
| C-030 | list3_genで3要素リスト生成 | E-02 (行188-193) | ○ |
| C-031 | append_genでリスト連結 | E-02 (行196-207) | ○ |
| C-032 | append_genで第1引数NULL時の動作 | E-02 (行200) | ○ |
| C-033 | append_genで第2引数NULL時の動作 | E-02 (行201) | ○ |
| C-034 | new_scopeでスコープノード生成 | E-02 (行408-415) | ○ |
| C-035 | new_ifでif文ノード生成 | E-02 (行513-524) | ○ |
| C-036 | new_ifでvoid式エラー検出 | E-02 (行516) | ○ |
| C-037 | new_whileでwhile文ノード生成 | E-02 (行527-537) | ○ |
| C-038 | new_untilでuntil文ノード生成 | E-02 (行540-550) | ○ |
| C-039 | new_forでfor文ノード生成 | E-02 (行574-585) | ○ |
| C-040 | new_caseでcase文ノード生成 | E-02 (行588-598) | ○ |
| C-041 | new_case_matchでパターンマッチノード生成 | E-02 (行601-611) | ○ |
| C-042 | new_callでメソッド呼び出しノード生成 | E-02 (行741-753) | ○ |
| C-043 | new_callでセーフナビゲーション設定 | E-02 (行746) | ○ |
| C-044 | new_fcallで関数呼び出しノード生成 | E-02 (行756-760) | ○ |
| C-045 | new_callargsで呼び出し引数構造生成 | E-02 (行764-776) | ○ |
| C-046 | new_yieldでyieldノード生成 | E-02 (行798-811) | ○ |
| C-047 | new_yieldでブロック引数競合エラー | E-02 (行804-805) | ○ |
| C-048 | new_returnでreturnノード生成 | E-02 (行814-821) | ○ |
| C-049 | new_breakでbreakノード生成 | E-02 (行824-830) | ○ |
| C-050 | new_nextでnextノード生成 | E-02 (行833-839) | ○ |
| C-051 | new_redoでredoノード生成 | E-02 (行842-847) | ○ |
| C-052 | new_retryでretryノード生成 | E-02 (行850-855) | ○ |
| C-053 | new_rescueでrescueノード生成 | E-02 (行448-457) | ○ |
| C-054 | new_ensureでensureノード生成 | E-02 (行466-473) | ○ |
| C-055 | new_aliasでaliasノード生成 | E-02 (行503-510) | ○ |
| C-056 | new_dot2で包含範囲ノード生成 | E-02 (行858-866) | ○ |
| C-057 | new_dot3で排他範囲ノード生成 | E-02 (行869-877) | ○ |
| C-058 | new_colon2でスコープ解決ノード生成 | E-02 (行880-889) | ○ |
| C-059 | new_colon3でトップレベルスコープ解決ノード生成 | E-02 (行892-898) | ○ |
| C-060 | new_superでsuperノード生成 | E-02 (行779-786) | ○ |
| C-061 | new_zsuperで引数なしsuperノード生成 | E-02 (行789-795) | ○ |
| C-062 | new_nilでnilリテラルノード生成 | E-02 (行476-482) | ○ |
| C-063 | new_trueでtrueリテラルノード生成 | E-02 (行485-489) | ○ |
| C-064 | new_falseでfalseリテラルノード生成 | E-02 (行494-499) | ○ |
| C-065 | new_selfでselfノード生成 | E-02 (行731-737) | ○ |
| C-066 | new_stmtsで文リストノード生成 | E-02 (行418-425) | ○ |
| C-067 | new_stmtsでNULL入力時の動作 | E-02 (行422) | ○ |
| C-068 | stmts_pushで文リストへの追加 | E-02 (行428-434) | ○ |
| C-069 | new_pat_valueで値パターンノード生成 | E-02 (行614-620) | ○ |
| C-070 | new_pat_varで変数パターンノード生成と変数登録 | E-02 (行623-633) | ○ |
| C-071 | new_pat_varでワイルドカード時の非登録 | E-02 (行629-631) | ○ |
| C-072 | new_pat_pinでピンパターンノード生成 | E-02 (行636-643) | ○ |
| C-073 | new_pat_asでasパターンノード生成 | E-02 (行646-654) | ○ |
| C-074 | new_pat_altで代替パターンノード生成 | E-02 (行657-664) | ○ |
| C-075 | new_pat_arrayで配列パターンノード生成 | E-02 (行667-675) | ○ |
| C-076 | new_pat_findでfindパターンノード生成 | E-02 (行678-686) | ○ |
| C-077 | new_pat_hashでハッシュパターンノード生成 | E-02 (行689-696) | ○ |
| C-078 | new_match_patでワンラインパターンマッチノード生成 | E-02 (行699-707) | ○ |
| C-079 | new_inでin節ノード生成 | E-02 (行710-719) | ○ |
| C-080 | local_var_pでローカル変数存在チェック | E-02 (行282-312) | ○ |
| C-081 | local_var_pで変数不在チェック | E-02 (行282-312) | ○ |
| C-082 | local_var_pで外部スコープのRProc検索 | E-02 (行297-310) | ○ |
| C-083 | local_add_fでローカル変数追加 | E-02 (行314-332) | ○ |
| C-084 | local_add_fで重複引数名エラー | E-02 (行320-325) | ○ |
| C-085 | local_addで未登録変数の追加 | E-02 (行334-340) | ○ |
| C-086 | local_addで既登録変数のスキップ | E-02 (行337) | ○ |
| C-087 | local_switchでスコープ切替 | E-02 (行253-260) | ○ |
| C-088 | local_resumeでスコープ復元 | E-02 (行262-266) | ○ |
| C-089 | local_nestでスコープネスト | E-02 (行268-272) | ○ |
| C-090 | local_unnestでスコープアンネスト | E-02 (行274-280) | ○ |
| C-091 | init_var_headerの初期化 | E-02 (行148-159) | ○ |
| C-092 | init_var_headerのファイル境界エッジケース | E-02 (行156-158) | ○ |
| C-093 | nextcでの文字読取 | E-02 (行5222-5258) | ○ |
| C-094 | nextcでのCRLF正規化 | E-02 (行5242-5248) | ○ |
| C-095 | nextcでのソース終端検出 | E-02 (行5251-5257) | ○ |
| C-096 | nextcでのプッシュバック文字読取 | E-02 (行5227-5233) | ○ |
| C-097 | pushbackでの文字プッシュバック | E-02 (行5260-5267) | ○ |
| C-098 | parser_strndupでの文字列コピー | E-02 (行211-219) | ○ |
| C-099 | parser_strndupで長さ0の文字列 | E-02 (行211-219) | ○ |
| C-100 | intern_numparam_genでの番号パラメータ名生成 | E-02 (行97-102) | ○ |
| C-101 | node_type_pでのノードタイプ一致判定 | E-02 (行359-367) | ○ |
| C-102 | node_type_pでのノードタイプ不一致判定 | E-02 (行359-367) | ○ |
| C-103 | node_type_pでのNULLノード安全性 | E-02 (行362) | ○ |
| C-104 | dump_intでの整数文字列変換 | E-02 (行232-249) | ○ |
| C-105 | dump_intでのゼロ変換 | E-02 (行241) | ○ |

### コード生成（codegen.c）関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-106 | codegen_errorでのエラー報告とlongjmp | E-01 (行180-220) | ○ |
| C-107 | codegen_errorでのNULL安全性 | E-01 (行183) | ○ |
| C-108 | codegen_errorでの中間スコープリソース解放 | E-01 (行193-218) | ○ |
| C-109 | codegen_pallocでのメモリプール割当 | E-01 (行234-241) | ○ |
| C-110 | codegen_pallocでのメモリ確保失敗 | E-01 (行239) | ○ |
| C-111 | check_no_ext_opsでのno_ext_ops未設定時 | E-01 (行254-260) | ○ |
| C-112 | check_no_ext_opsでのオペランド超過エラー | E-01 (行257-258) | ○ |
| C-113 | new_labelでのラベル生成 | E-01 (行272-276) | ○ |
| C-114 | emit_Bでの1バイト書込 | E-01 (行291-316) | ○ |
| C-115 | emit_Bでのバッファ自動拡張 | E-01 (行294-308) | ○ |
| C-116 | emit_BでのUINT32_MAXエラー | E-01 (行295-296) | ○ |
| C-117 | emit_Sでのビッグエンディアン書込 | E-01 (行327-335) | ○ |
| C-118 | genop_0でのオペランドなし命令生成 | E-01 (行372-377) | ○ |
| C-119 | genop_1での1オペランド命令生成 | E-01 (行389-403) | ○ |
| C-120 | genop_1でのOP_EXT1前置 | E-01 (行394-397) | ○ |
| C-121 | genop_2での2オペランド命令生成 | E-01 (行416-444) | ○ |
| C-122 | genop_2でのEXT1パターン | E-01 (行433-438) | ○ |
| C-123 | genop_2でのEXT2パターン | E-01 (行427-432) | ○ |
| C-124 | genop_2でのEXT3パターン | E-01 (行421-426) | ○ |
| C-125 | genop_3での3オペランド命令生成 | E-01 (行458-463) | ○ |
| C-126 | genop_Wでのワイドオペランド命令生成 | E-01 (行511-523) | ○ |
| C-127 | mrb_decode_insnでの標準命令デコード | E-01 (行550-600) | ○ |
| C-128 | mrb_decode_insnでの拡張命令デコード | E-01 (行567-594) | ○ |
| C-129 | mrb_decode_insnでのNULLポインタ安全性 | E-01 (行554) | ○ |
| C-130 | mrb_prev_pcでの前命令PC取得 | E-01 (行674-698) | ○ |
| C-131 | mrb_prev_pcでの先頭命令の前PC | E-01 (行677, 681) | ○ |
| C-132 | mrb_last_insnでの最終命令取得 | E-01 (行717-725) | ○ |
| C-133 | mrb_last_insnでの空iseqのNOP返却 | E-01 (行720-723) | ○ |
| C-134 | no_peepholeでの最適化無効判定 | E-01 (行739-743) | ○ |
| C-135 | no_peepholeでのラベル位置判定 | E-01 (行742) | ○ |
| C-136 | no_peepholeでのpc==0判定 | E-01 (行742) | ○ |
| C-137 | gen_jmpdstでのジャンプオフセット計算 | E-01 (行761-775) | ○ |
| C-138 | gen_jmpdstでのJMPLINK_START処理 | E-01 (行765-767) | ○ |
| C-139 | gen_jmpdstでのオフセット上限エラー | E-01 (行771-773) | ○ |
| C-140 | genjmpでの無条件ジャンプ生成 | E-01 (行789-798) | ○ |
| C-141 | genjmp2での条件ジャンプ生成 | E-01 (行828-884) | ○ |
| C-142 | genjmp2でのLOADFALSE+JMPNOT最適化 | E-01 (行843-853) | ○ |
| C-143 | genjmp2でのLOADTRUE+JMPIF最適化 | E-01 (行855-867) | ○ |
| C-144 | genjmp2でのLOADTRUE+JMPNOT除去 | E-01 (行855-867) | ○ |
| C-145 | gen_moveでのMOVEオペコード生成 | E-01 (行914-1024) | ○ |
| C-146 | gen_moveでの同一レジスタ除去 | E-01 (行917) | ○ |
| C-147 | gen_moveでのMOVE連鎖最適化 | E-01 (行924-931) | ○ |
| C-148 | gen_moveでのLOADNIL+MOVE融合 | E-01 (行940-947) | ○ |
| C-149 | gen_moveでのADDI/SUBI定数畳み込み | E-01 (行992-1015) | ○ |
| C-150 | gen_getupvarでのOP_GETUPVAR生成 | E-01 (行1068-1082) | ○ |
| C-151 | gen_getupvarでの冗長GETUPVAR除去 | E-01 (行1074-1079) | ○ |
| C-152 | gen_setupvarでのOP_SETUPVAR生成 | E-01 (行1102-1116) | ○ |
| C-153 | gen_setupvarでのMOVE+SETUPVAR融合 | E-01 (行1108-1113) | ○ |
| C-154 | gen_returnでのOP_RETURN生成 | E-01 (行1136-1174) | ○ |
| C-155 | gen_returnでのRETSELF融合 | E-01 (行1149-1153) | ○ |
| C-156 | gen_returnでのRETNIL融合 | E-01 (行1154-1158) | ○ |
| C-157 | gen_returnでのRETTRUE融合 | E-01 (行1159-1163) | ○ |
| C-158 | gen_returnでのRETFALSE融合 | E-01 (行1164-1168) | ○ |
| C-159 | gen_returnでの重複RETURN抑制 | E-01 (行1169-1172) | ○ |
| C-160 | get_int_operandでのOP_LOADI_0〜7取得 | E-01 (行1205-1208) | ○ |
| C-161 | get_int_operandでのOP_LOADI__1取得 | E-01 (行1197-1199) | ○ |
| C-162 | get_int_operandでのOP_LOADI8取得 | E-01 (行1210-1213) | ○ |
| C-163 | get_int_operandでのOP_LOADI16取得 | E-01 (行1210-1213) | ○ |
| C-164 | get_int_operandでのOP_LOADI32取得 | E-01 (行1215-1217) | ○ |
| C-165 | get_int_operandでのOP_LOADLリテラルプール取得 | E-01 (行1219-1235) | ○ |
| C-166 | get_int_operandでの非整数命令のFALSE返却 | E-01 (行1237-1238) | ○ |
| C-167 | gen_addsubでのOP_ADD生成 | E-01 (行1435-1485) | ○ |
| C-168 | gen_addsubでの加算定数畳み込み | E-01 (行1476-1484) | ○ |
| C-169 | gen_addsubでのOP_ADDI最適化 | E-01 (行1461-1474) | ○ |
| C-170 | gen_addsubでの文字列連結最適化 | E-01 (行1449-1454) | ○ |
| C-171 | gen_addsubでのオーバーフロー安全性 | E-01 (行1477-1480) | ○ |
| C-172 | gen_muldivでのOP_MUL生成 | E-01 (行1508-1538) | ○ |
| C-173 | gen_muldivでの乗算定数畳み込み | E-01 (行1527-1528) | ○ |
| C-174 | gen_muldivでのゼロ除算安全性 | E-01 (行1531) | ○ |
| C-175 | gen_muldivでのMRB_INT_MIN/-1安全性 | E-01 (行1532) | ○ |
| C-176 | gen_binopでのOP_GETIDX生成 | E-01 (行1572-1584) | ○ |
| C-177 | gen_binopでのビットシフト定数畳み込み | E-01 (行1597-1602) | ○ |
| C-178 | gen_binopでのビットAND/OR/XOR定数畳み込み | E-01 (行1616-1624) | ○ |
| C-179 | gen_binopでの非対応演算子フォールバック | E-01 (行1625-1627) | ○ |
| C-180 | dispatchでのジャンプパッチ | E-01 (行1660-1679) | ○ |
| C-181 | dispatchでのJMPLINK_START処理 | E-01 (行1667) | ○ |
| C-182 | dispatchでのオフセット上限エラー | E-01 (行1671-1673) | ○ |
| C-183 | dispatch_linkedでのジャンプチェーン解決 | E-01 (行1700-1708) | ○ |
| C-184 | dispatch_linkedでの空チェーン処理 | E-01 (行1703) | ○ |
| C-185 | push_n_でのスタックポインタ増加 | E-01 (行1712-1720) | ○ |
| C-186 | push_n_でのスタックオーバーフロー | E-01 (行1715-1717) | ○ |
| C-187 | pop_n_でのスタックポインタ減少 | E-01 (行1722-1729) | ○ |
| C-188 | pop_n_でのスタックアンダーフロー | E-01 (行1725-1727) | ○ |
| C-189 | lit_pool_extendでのプール拡張 | E-01 (行1754-1763) | ○ |
| C-190 | lit_pool_extendでの通常追加 | E-01 (行1757-1762) | ○ |
| C-191 | merge_op_stringでの文字列マージ | E-01 (行1345-1408) | ○ |
| C-192 | merge_op_stringでの参照済みプールの新規作成 | E-01 (行1400-1403) | ○ |
| C-193 | realloc_pool_strでの共有文字列再割当 | E-01 (行1267-1284) | ○ |
| C-194 | realloc_pool_strでのヒープ文字列再割当 | E-01 (行1277-1280) | ○ |
| C-195 | free_pool_strでの動的割当文字列解放 | E-01 (行1303-1311) | ○ |
| C-196 | free_pool_strでの共有文字列非解放 | E-01 (行1306) | ○ |
| C-197 | scope_newでの新スコープ初期化 | E-01 (行141) | △ |
| C-198 | scope_newでのネストスコープ生成 | E-01 (行141) | △ |
| C-199 | scope_finishでのスコープ終了 | E-01 (行142) | △ |
| C-200 | loop_pushでのループ情報プッシュ | E-01 (行143) | △ |
| C-201 | loop_popでのループ情報ポップ | E-01 (行145) | △ |
| C-202 | loop_breakでのbreakジャンプ生成 | E-01 (行144) | △ |
| C-203 | catch_handler_newでのキャッチハンドラ生成 | E-01 (行153) | △ |
| C-204 | catch_handler_setでのキャッチハンドラ設定 | E-01 (行154) | △ |
| C-205 | codegenでのNODE_IFコンパイル | E-01 (行161), E-03 | △ |
| C-206 | codegenでのNODE_WHILEコンパイル | E-01 (行161), E-03 | △ |
| C-207 | codegenでのNODE_CALLコンパイル | E-01 (行161), E-03 | △ |
| C-208 | codegenでのNODE_DEFコンパイル | E-01 (行161), E-03 | △ |
| C-209 | codegenでのNODE_CLASSコンパイル | E-01 (行161), E-03 | △ |
| C-210 | codegenでのNODE_RETURNコンパイル | E-01 (行161) | ○ |
| C-211 | codegenでのNODE_RESCUEコンパイル | E-01 (行161), E-03 | △ |
| C-212 | codegenでの再帰深度制限 | E-01 (行63-66) | ○ |
| C-213 | codegenでのNULLツリー安全処理 | E-01 (行161, 168) | ○ |
| C-214 | codegenでのNODE_INTコンパイル | E-01 (行161), E-03 | ○ |
| C-215 | codegenでのNODE_STRコンパイル | E-01 (行161), E-03 | ○ |
| C-216 | codegenでのNODE_SYMコンパイル | E-01 (行161), E-03 | ○ |
| C-217 | codegenでのNODE_ARRAYコンパイル | E-01 (行161), E-03 | ○ |
| C-218 | codegenでのNODE_HASHコンパイル | E-01 (行161), E-03 | ○ |
| C-219 | codegenでのNODE_LAMBDAコンパイル | E-01 (行161), E-03 | ○ |
| C-220 | codegenでのNODE_BLOCKコンパイル | E-01 (行161), E-03 | ○ |
| C-221 | codegenでのNODE_CASE_MATCHコンパイル | E-01 (行161, 4358) | ○ |
| C-222 | codegen_patternでの値パターンコンパイル | E-01 (行4358) | ○ |
| C-223 | codegen_patternでの変数パターンコンパイル | E-01 (行4358) | ○ |
| C-224 | codegen_patternでの配列パターンコンパイル | E-01 (行4358) | ○ |
| C-225 | gen_assignmentでのローカル変数代入 | E-01 (行158) | ○ |
| C-226 | gen_assignmentでのインスタンス変数代入 | E-01 (行158) | ○ |
| C-227 | gen_assignmentでのグローバル変数代入 | E-01 (行158) | ○ |
| C-228 | gen_massignmentでの多重代入 | E-01 (行156) | ○ |
| C-229 | mrb_generate_codeでのRProc生成 | E-01 (行7312-7316) | ○ |
| C-230 | mrb_generate_codeでのエラー時NULL返却 | E-01 (行7302-7307) | ○ |
| C-231 | gen_load_nilでのOP_LOADNIL生成 | E-01 (行1784-1790) | ○ |
| C-232 | gen_load_nilでのNOVAL時抑制 | E-01 (行1787) | ○ |
| C-233 | no_optimizeでのTRUE判定 | E-01 (行529-535) | ○ |
| C-234 | no_optimizeでのFALSE判定 | E-01 (行529-535) | ○ |
| C-235 | is_empty_stmtsでの空文リスト判定 | E-01 (行5095) | ○ |
| C-236 | is_empty_stmtsでの非空文リスト判定 | E-01 (行5095) | ○ |
| C-237 | raise_errorでのエラー命令生成 | E-01 (行162) | ○ |
| C-238 | gen_intでの最適整数ロード(0-7) | E-01 (行889) | ○ |
| C-239 | gen_intでの即値-1ロード | E-01 (行889) | ○ |
| C-240 | gen_intでの8ビット整数ロード | E-01 (行889) | ○ |
| C-241 | gen_intでの16ビット整数ロード | E-01 (行889) | ○ |
| C-242 | gen_intでの32ビット整数ロード | E-01 (行889) | ○ |
| C-243 | search_upvarでの外部スコープ変数検索 | E-01 (行1049) | ○ |
| C-244 | search_upvarでの未定義変数エラー | E-01 (行1049) | △ |
| C-245 | codegen_scope_nodeでのスコープノード処理 | E-01 (行6357) | ○ |

### ノード定義（node.h）関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-246 | ノードタイプ定数の一意性 | E-03 (行10-97) | ○ |
| C-247 | 文字列タイプフラグの正確性 | E-03 (行99-120) | ○ |
| C-248 | mrb_ast_node構造体のサイズ | E-03 (行138-141) | ○ |
| C-249 | mrb_ast_var_headerのフィールドレイアウト | E-03 (行146-151) | ○ |
| C-250 | NODE_TYPEマクロの動作 | E-03 (行429) | ○ |

## 4) 不足情報（Unknown / Missing）
- **scope_new / scope_finish / loop_push / loop_pop / loop_break の実装詳細**：前方宣言のみ確認済みで、実装本体はcodegen.cの後半部分にあるが、読み込み範囲外であったため詳細な入出力仕様が推測に基づく
  - 候補：codegen.cの完全読み込み / 既存テストケースの参照 / mrubyドキュメント
- **catch_handler_new / catch_handler_set の実装詳細**：前方宣言のみ確認
  - 候補：codegen.cの完全読み込み
- **codegen関数のノードタイプ別分岐の詳細**：約5000行のswitch文の全分岐を網羅的に読み取れていない
  - 候補：codegen.cの完全読み込み / ASTノードごとの個別解析
- **search_upvarの実装本体**：前方宣言のみ確認
  - 候補：codegen.cの対応行の読み込み

## 5) リスクフラグ（レビュー観点）
- **1 (中リスク)**: scope_new/scope_finish/loop_push/loop_pop/loop_break/catch_handler_new/catch_handler_setのテストケースは前方宣言からの推測に基づいており、実装の詳細な分岐条件を反映できていない可能性がある
- **1 (中リスク)**: codegen関数のNODE_IF/NODE_WHILE/NODE_CALL/NODE_DEF/NODE_CLASS/NODE_RESCUEの具体的なバイトコード出力パターンは巨大なswitch文の部分的な読み取りに基づく
- **0 (低リスク)**: パーサ（parse.y）のAST生成関数群は実装コードを直接確認しており、高い信頼度
- **0 (低リスク)**: ピープホール最適化関連の関数は実装コードを詳細に確認済み

## 6) レビュアーチェックリスト（最小）
- [ ] scope_new/scope_finish関数の実装を確認し、テストケースC-197〜C-199の前提条件・期待結果が正しいか検証する
- [ ] loop_push/loop_pop/loop_breakの実装を確認し、テストケースC-200〜C-202の入力値・期待結果が正しいか検証する
- [ ] catch_handler_new/catch_handler_setの実装を確認し、テストケースC-203〜C-204が十分か検証する
- [ ] codegen関数のNODE_IF/NODE_WHILE/NODE_CALL/NODE_DEF/NODE_CLASSの各分岐を確認し、テストケースC-205〜C-209の期待されるバイトコードパターンが正確か検証する
- [ ] search_upvarの実装を確認し、テストケースC-243〜C-244のエラー条件が正確か検証する
- [ ] node.hの構造体サイズがプラットフォームに依存しないか確認する（C-248）
- [ ] gen_int関数の実装を確認し、各整数範囲でのロード命令選択が正確か検証する（C-238〜C-242）
