---
generated_at: 2026-03-01 05:52:00
metrics:
  claims_total: 50
  claims_with_evidence: 50
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：babel-helper-wrap-function 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：50 / 50、根拠なし：0
- 優先レビュー（高）
  1. **該当なし**：すべてのテストケースがソースコードに基づいて生成されています

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `packages/babel-helper-wrap-function/src/index.ts` - メインソースファイル（wrapFunction, classOrObjectMethod, plainFunction, テンプレートビルダー定義）
- E-02: `packages/babel-helper-wrap-function/src/index.ts:211-234` - wrapFunction関数の定義（行211-234）
- E-03: `packages/babel-helper-wrap-function/src/index.ts:67-133` - classOrObjectMethod関数の定義（行67-133）
- E-04: `packages/babel-helper-wrap-function/src/index.ts:135-209` - plainFunction関数の定義（行135-209）
- E-05: `packages/babel-helper-wrap-function/src/index.ts:36-45` - buildAnonymousExpressionWrapperテンプレート定義
- E-06: `packages/babel-helper-wrap-function/src/index.ts:47-57` - buildNamedExpressionWrapperテンプレート定義
- E-07: `packages/babel-helper-wrap-function/src/index.ts:59-65` - buildDeclarationWrapperテンプレート定義
- E-08: `packages/babel-helper-wrap-function/src/index.ts:1-17` - インポート文（@babel/traverse, @babel/template, @babel/types）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | wrapFunctionがpath.isMethod()でメソッドを判定する | E-02 (行218) | ○ |
| C-02 | メソッドの場合classOrObjectMethodが呼び出される | E-02 (行219) | ○ |
| C-03 | 非メソッドの場合plainFunctionが呼び出される | E-02 (行226-232) | ○ |
| C-04 | hadNameはpath.node.idの存在で判定される | E-02 (行221) | ○ |
| C-05 | ensureFunctionNameが非メソッドに対して呼び出される | E-02 (行225) | ○ |
| C-06 | noNewArrowsのデフォルト値はtrue | E-02 (行215) | ○ |
| C-07 | ignoreFunctionLengthのデフォルト値はfalse | E-02 (行216) | ○ |
| C-08 | classOrObjectMethodでshouldForwardParamsがパターン存在で判定される | E-03 (行78) | ○ |
| C-09 | shouldForwardParams=trueでapply形式が使用される | E-03 (行100-116) | ○ |
| C-10 | shouldForwardParams=falseで直接呼び出し形式が使用される | E-03 (行117-127) | ○ |
| C-11 | ignoreFunctionLength=falseでダミーパラメータが生成される | E-03 (行83-90) | ○ |
| C-12 | AssignmentPatternでパラメータ生成が停止する | E-03 (行85) | ○ |
| C-13 | RestElementでパラメータ生成が停止する | E-03 (行85) | ○ |
| C-14 | node.asyncがfalseに設定される | E-03 (行131) | ○ |
| C-15 | node.generatorがfalseに設定される | E-03 (行132) | ○ |
| C-16 | unwrapFunctionEnvironmentが呼び出される（パラメータ転送あり） | E-03 (行114-116) | ○ |
| C-17 | unwrapFunctionEnvironmentが呼び出される（パラメータ転送なし） | E-03 (行124-126) | ○ |
| C-18 | コンテナがfunctionExpressionで作成される | E-03 (行93-98) | ○ |
| C-19 | ジェネレータフラグがtrueで設定される | E-03 (行97) | ○ |
| C-20 | plainFunctionでアロー関数が変換される | E-04 (行152-153) | ○ |
| C-21 | isFunctionDeclarationでbuildDeclarationWrapperが使用される | E-04 (行189-192) | ○ |
| C-22 | hadName=trueでbuildNamedExpressionWrapperが使用される | E-04 (行196-197) | ○ |
| C-23 | hadName=falseでbuildAnonymousExpressionWrapperが使用される | E-04 (行198-199) | ○ |
| C-24 | node.idがnullに設定される | E-04 (行165) | ○ |
| C-25 | node.typeがFunctionExpressionに変更される | E-04 (行166) | ○ |
| C-26 | ラッパー省略条件が判定される | E-04 (行202-207) | ○ |
| C-27 | wrapperArgsにNAMEが設定される | E-04 (行181) | ○ |
| C-28 | REF識別子が関数名から生成される（hadName=true） | E-04 (行184) | ○ |
| C-29 | REF識別子が'ref'から生成される（hadName=false） | E-04 (行184) | ○ |
| C-30 | plainFunctionでもAssignmentPatternでパラメータ生成が停止する | E-04 (行174) | ○ |
| C-31 | plainFunctionでもRestElementでパラメータ生成が停止する | E-04 (行174) | ○ |
| C-32 | insertAfterで2番目のstatementが挿入される | E-04 (行192) | ○ |
| C-33 | buildAnonymousExpressionWrapperがIIFE形式を生成する | E-05 | ○ |
| C-34 | buildNamedExpressionWrapperが名前付き関数を返すIIFEを生成する | E-06 | ○ |
| C-35 | buildDeclarationWrapperが2つのstatementを生成する | E-07 | ○ |
| C-36 | パラメータ0個の関数が処理可能 | E-04 (行172-178: paramsループ) | ○ |
| C-37 | パラメータ1個の関数が処理可能 | E-04 (行172-178: paramsループ) | ○ |
| C-38 | 多数のパラメータを持つ関数が処理可能 | E-04 (行172-178: paramsループ) | ○ |
| C-39 | 空のメソッドボディが処理可能 | E-03 (行73, 96: body.body参照) | ○ |
| C-40 | 空の関数ボディが処理可能 | E-04 (行166-169: built生成) | ○ |
| C-41 | ClassPrivateMethodがclassOrObjectMethodで処理される | E-02 (行218: path.isMethod()), E-03 (行67-68: 型定義) | ○ |
| C-42 | thisExpressionとarguments識別子がapply呼び出しに使用される | E-03 (行109) | ○ |
| C-43 | CallExpressionの場合にラップをスキップする | E-04 (行163: isCallExpression(node)) | ○ |
| C-44 | noNewArrows=falseが渡される | E-04 (行153: noNewArrows引数) | ○ |
| C-45 | ignoreFunctionLength=trueが渡される | E-02 (行216), E-03 (行71, 83) | ○ |
| C-46 | コンテナ関数の第4引数がtrue（ジェネレータ） | E-03 (行97) | ○ |
| C-47 | functionIdあり、params空、ignoreFunctionLength=trueでラッパー使用 | E-04 (行202: functionId条件) | ○ |
| C-48 | ObjectMethodがpath.isMethod()でtrueになる | E-02 (行218: path.isMethod()) | ○ |
| C-49 | ArrowFunctionExpressionがarrowFunctionToExpressionで変換される | E-04 (行152-153) | ○ |
| C-50 | FunctionExpressionがplainFunctionで処理される | E-04 (行156-158) | ○ |

## 4) 不足情報（Unknown / Missing）
- **該当なし**：すべてのテストケースはソースコード `packages/babel-helper-wrap-function/src/index.ts` に基づいて生成されており、根拠が明確です。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - すべてのテストケースがソースコードの実装に基づいており、根拠が明確です。
- 注意点：
  - `unwrapFunctionEnvironment` の呼び出しパス（行114-116, 124-126）は複雑なので、実際のテスト実装時に慎重に確認が必要
  - テンプレートビルダー（buildAnonymousExpressionWrapper等）の出力構造はTypeScriptの型定義で保証されている

## 6) レビュアーチェックリスト（最小）
- [ ] wrapFunction関数の分岐（isMethod/非isMethod）がテストケースで網羅されているか確認
- [ ] classOrObjectMethod関数のshouldForwardParams分岐（true/false）が網羅されているか確認
- [ ] plainFunction関数のisDeclaration分岐（宣言/式）が網羅されているか確認
- [ ] hadName分岐（名前付き/無名）が網羅されているか確認
- [ ] ignoreFunctionLength分岐（true/false）が網羅されているか確認
- [ ] AssignmentPatternとRestElementの境界値テストが含まれているか確認
- [ ] async/generatorフラグのリセットがテストされているか確認
