---
generated_at: 2026-02-19 12:30:00
metrics:
  claims_total: 300
  claims_with_evidence: 300
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：nodes.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：300 / 300、根拠なし：0
- 優先レビュー（高）
  1. **なし**：全テストケースがソースコードに基づいて生成されている
  2. 特に重要なクラス（Base, Block, Code, Class, Assign, Op）のテストケースを重点確認
  3. 異常系・エラーハンドリングのテストケースの網羅性を確認

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

- E-01: `src/nodes.coffee` - ノードクラス定義ファイル（6139行）
- E-02: `docs/code-to-docs/単体テストケース一覧/plan.md` - テスト計画書
- E-03: CoffeeScriptコンパイラのASTノード構造

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

### 基盤クラス（Base, CodeFragment, HoistTarget）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | CodeFragment.constructorでcode/type/locationData/commentsが設定される | E-01 L33-38 | ○ |
| C-002 | CodeFragment.constructorでparentがnullの場合type='unknown' | E-01 L36 | ○ |
| C-003 | fragmentsToTextがCodeFragment配列を文字列に結合する | E-01 L45-46 | ○ |
| C-006 | Base.compileがfragmentsToTextを呼び出す | E-01 L61-62 | ○ |
| C-007 | Base.compileToFragmentsがcompileNodeまたはcompileClosureを選択する | E-01 L98-109 | ○ |
| C-012 | Base.cacheが複雑な式をキャッシュ変数に代入する | E-01 L198-206 | ○ |
| C-015 | Base.makeReturnがReturnノードを返す | E-01 L237-247 | ○ |
| C-023 | checkForPureStatementInExpressionがjumpsノードでエラーを投げる | E-01 L273-275 | ○ |

### ルート/ブロック（Root, Block）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-041 | Root.constructorでbodyとisAsyncが設定される | E-01 L513-517 | ○ |
| C-043 | Root.compileNodeでbare=falseの場合IIFEでラップされる | E-01 L531-532 | ○ |
| C-047 | Block.constructorでexpressionsがcompact/flattenされる | E-01 L567-571 | ○ |
| C-057 | Block.makeReturnで最後の式がreturnでラップされる | E-01 L609-630 | ○ |
| C-061 | Block.compileWithDeclarationsで変数宣言が先頭に追加される | E-01 L687-721 | ○ |

### リテラル（Literal系）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-065 | Literal.constructorでvalueが設定される | E-01 L918-920 | ○ |
| C-068 | NumberLiteral.constructorでvalue/parsedValueが設定される | E-01 L938-946 | ○ |
| C-072 | InfinityLiteral.compileNodeで'2e308'が出力される | E-01 L976-977 | ○ |
| C-073 | NaNLiteral.compileNodeで'0/0'が出力される | E-01 L995-997 | ○ |
| C-075 | StringLiteral.constructorで各種値が設定される | E-01 L1006-1041 | ○ |
| C-078 | RegexLiteral.constructorでvalue/flags/originalValueが設定される | E-01 L1107-1116 | ○ |
| C-084 | StatementLiteral.jumpsでbreakがループ外でthisを返す | E-01 L1201-1203 | ○ |

### Return/Yield/Await
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-091 | Return.constructorでexpressionが設定される | E-01 L1267-1269 | ○ |
| C-092 | Return.compileNodeで'return expr;'形式が出力される | E-01 L1281-1300 | ○ |
| C-096 | YieldReturn.checkScopeで関数外使用時エラー | E-01 L1321-1323 | ○ |

### Value/Access/Index
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-098 | Value.constructorでbase/properties/tagが設定される | E-01 L1353-1365 | ○ |
| C-107 | Value.cacheReferenceで参照がキャッシュされる | E-01 L1432-1445 | ○ |
| C-109 | Value.unfoldSoakでsoak演算子がIfに展開される | E-01 L1472-1487 | ○ |
| C-125 | Access.compileToFragmentsでPropertyNameは'.prop'形式 | E-01 L2262-2268 | ○ |
| C-127 | Index.compileToFragmentsで'[index]'形式が出力される | E-01 L2287-2288 | ○ |

### Call/Super
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-111 | Call.constructorでvariable/args/implicit/isNewが設定される | E-01 L1964-1971 | ○ |
| C-112 | Call.constructorでリテラル呼び出し時エラー | E-01 L1970-1971 | ○ |
| C-115 | Call.compileNodeで'func(args)'形式が出力される | E-01 L2059-2086 | ○ |
| C-117 | Call.checkForNewSuperでnew superエラー | E-01 L2088-2090 | ○ |
| C-121 | Super.checkInInstanceMethodでインスタンスメソッド外エラー | E-01 L2178-2180 | ○ |

### Range/Slice/Obj/Arr
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-129 | Range.constructorでfrom/to/exclusive/equalsが設定される | E-01 L2306-2314 | ○ |
| C-134 | Slice.compileNodeで'.slice()'形式が出力される | E-01 L2435-2454 | ○ |
| C-136 | Obj.constructorでobjects/properties/generatedが設定される | E-01 L2462-2466 | ○ |
| C-143 | Obj.getAndCheckSplatPropsで複数splatエラー | E-01 L2565-2570 | ○ |
| C-146 | Arr.constructorでobjects/lhsが設定される | E-01 L2677-2681 | ○ |

### Class
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-153 | Class.constructorでvariable/parent/bodyが設定される | E-01 L2793-2800 | ○ |
| C-154 | Class.compileNodeで'class Name extends Parent {}'形式が出力される | E-01 L2802-2854 | ○ |
| C-159 | Class.makeDefaultConstructorでCodeノードが生成される | E-01 L3002-3015 | ○ |
| C-162 | ExecutableClassBody.compileNodeで純粋ステートメントエラー | E-01 L3069-3070 | ○ |

### Module (Import/Export)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-165 | ModuleDeclaration.constructorでclause/source/assertionsが設定される | E-01 L3209-3212 | ○ |
| C-166 | ModuleDeclaration.checkSourceで補間文字列エラー | E-01 L3220-3222 | ○ |
| C-168 | ImportDeclaration.compileNodeで'import ... from ...'形式が出力される | E-01 L3240-3257 | ○ |
| C-173 | ImportSpecifier.addIdentifierToScopeで重複importエラー | E-01 L3422-3428 | ○ |

### Assign
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-176 | Assign.constructorでvariable/value/context等が設定される | E-01 L3481-3485 | ○ |
| C-180 | Assign.compileNodeで'variable = value'形式が出力される | E-01 L3563-3606 | ○ |
| C-182 | Assign.compileDestructuringで分割代入がコンパイルされる | E-01 L3621-3764 | ○ |
| C-184 | Assign.compileConditionalで未宣言変数への?=エラー | E-01 L3798-3800 | ○ |
| C-187 | Assign.getAndCheckSplatsAndExpansionsで複数splat/expansionエラー | E-01 L3787-3790 | ○ |

### Code/Param
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-188 | Code.constructorでparams/body/bound/isGenerator/isAsyncが設定される | E-01 L3897-3916 | ○ |
| C-193 | Code.compileNodeで'function() {}'形式が出力される | E-01 L4086-4137 | ○ |
| C-196 | Code.checkForDuplicateParamsで重複パラメータエラー | E-01 L4146-4150 | ○ |
| C-199 | Code.checkForAsyncOrGeneratorConstructorでasyncコンストラクタエラー | E-01 L4186-4189 | ○ |
| C-202 | Param.constructorでname/value/splatが設定される | E-01 L4336-4344 | ○ |

### Splat/Expansion/Elision
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-207 | Splat.constructorでname/lhs/postfixが設定される | E-01 L4454-4457 | ○ |
| C-209 | Splat.compileNodeで'...name'形式が出力される | E-01 L4470-4473 | ○ |
| C-211 | Expansion.compileNodeで分割代入外使用時エラー | E-01 L4503-4512 | ○ |

### While/For/Switch/If
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-214 | While.constructorでcondition/inverted/guard/isLoopが設定される | E-01 L4556-4558 | ○ |
| C-217 | While.compileNodeで'while (cond) {}'形式が出力される | E-01 L4585-4605 | ○ |
| C-259 | For.constructorでbody/sourceが設定される | E-01 L5339-5343 | ○ |
| C-267 | Switch.constructorでsubject/cases/otherwiseが設定される | E-01 L5512-5514 | ○ |
| C-272 | If.constructorでcondition/body/soak/postfixが設定される | E-01 L5609-5615 | ○ |
| C-276 | If.compileStatementで'if (cond) {} else {}'形式が出力される | E-01 L5658-5679 | ○ |

### Op/In
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-219 | Op.constructorでoperator/first/second/flipが設定される | E-01 L4625-4647 | ○ |
| C-221 | Op.constructorで'=='が'==='に変換される | E-01 L4650-4654 | ○ |
| C-227 | Op.compileNodeで'a op b'形式が出力される | E-01 L4739-4763 | ○ |
| C-234 | Op.checkContinuationで関数外yield使用時エラー | E-01 L4820-4824 | ○ |
| C-237 | In.compileOrTestで'x === 1 || x === 2'形式が出力される | E-01 L4925-4932 | ○ |

### Try/Catch/Throw
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-239 | Try.constructorでattempt/catch/ensureが設定される | E-01 L4948-4950 | ○ |
| C-241 | Try.compileNodeで'try {} catch {}'形式が出力される | E-01 L4969-4987 | ○ |
| C-246 | Throw.constructorでexpressionが設定される | E-01 L5056-5058 | ○ |
| C-247 | Throw.compileNodeで'throw expr;'形式が出力される | E-01 L5068-5073 | ○ |

### Existence/Parens
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-248 | Existence.constructorでexpression/comparisonTargetが設定される | E-01 L5086-5097 | ○ |
| C-249 | Existence.compileNodeで'expr != null'形式が出力される | E-01 L5103-5121 | ○ |
| C-251 | Parens.constructorでbodyが設定される | E-01 L5138-5140 | ○ |

### StringWithInterpolations
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-255 | StringWithInterpolations.constructorでbody/quote/jsxAttributeが設定される | E-01 L5172-5174 | ○ |
| C-258 | StringWithInterpolations.compileNodeでテンプレートリテラルが出力される | E-01 L5238-5270 | ○ |

### ユーティリティ関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-281 | mergeLocationDataで2つのlocationDataがマージされる | E-01 L5976-6017 | ○ |
| C-285 | jisonLocationDataToAstLocationDataでJison形式がBabel形式に変換される | E-01 L6075-6089 | ○ |
| C-286 | utilityでユーティリティ関数が登録される | E-01 L5793-5800 | ○ |
| C-290 | makeDelimitedLiteralでエスケープ処理された文字列が返される | E-01 L5863-5918 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし：全てのテストケースがソースコード（E-01）に基づいて生成されている

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全300件のテストケースがソースコードに直接基づいている
- 1: 中リスク - AST生成関連のテストケースは、Babelの仕様との整合性確認が必要
- 1: 中リスク - JSX関連のテストケースは、React/JSXの仕様との整合性確認が推奨

## 6) レビュアーチェックリスト（最小）
- [ ] 主要クラス（Base, Block, Code, Class, Assign, Op）のテストケースが十分な観点をカバーしているか
- [ ] 異常系テストケースで全てのエラーパターンが網羅されているか
- [ ] 境界値テストケース（空配列、null、undefined等）が適切に定義されているか
- [ ] コンパイル結果の期待値が正確か（JavaScript構文として正しいか）
- [ ] AST生成のテストケースがBabelの仕様と整合しているか
- [ ] JSX関連のテストケースがReactの仕様と整合しているか
- [ ] スコープ検証（関数外でのyield/await/super使用）のテストケースが正確か
- [ ] 分割代入のテストケースが複雑なパターン（ネスト、デフォルト値等）をカバーしているか
