---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 137
  claims_with_evidence: 137
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコード内の関数・メソッド定義が存在するか
2. **根拠との整合性**：テストケースの内容がソースコードの実装と矛盾していないか
3. **網羅性**：主要な関数・メソッド・クラスを適切にカバーしているか

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

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で各テストケースの根拠を確認
3. 「不足情報」で追加が必要なテストケースを確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：137 / 137、根拠なし：0
- 優先レビュー（高）
  1. **型プロバイダ関連テスト（UT-TTR-080〜103）**：条件付きコンパイル（NO_TYPEPROVIDERS）の影響を確認
  2. **シリアライズ/デシリアライズテスト（UT-TTR-111〜128）**：バイナリ互換性の検証が必要
  3. **等価性テスト（UT-TTR-017〜036）**：参照等価性と値等価性の区別を確認

## 2) 参照した情報（Evidence一覧）
> ソースコードファイルの解析結果

- E-01: `src/Compiler/TypedTree/CompilerGlobalState.fs` - NiceNameGenerator, StableNiceNameGenerator, newUnique, newStamp
- E-02: `src/Compiler/TypedTree/TypedTreeBasics.fs` - ValReprInfo, typeOfVal, nameOfVal, arityOfVal, typarEq, valEq, ccuEq, mkLocalTyconRef等
- E-03: `src/Compiler/TypedTree/TypedTree.fs` - ValFlags, TyparFlags, EntityFlags, ValInline, TyparKind, TyparRigidity等
- E-04: `src/Compiler/TypedTree/TypedTreeOps.fs` - TyparMap, TyconRefMap, ValMap, remapTypeAux, instType, tyconRefEq等
- E-05: `src/Compiler/TypedTree/tainted.fs` - Tainted, TypeProviderError, TypeProviderLock
- E-06: `src/Compiler/TypedTree/TypeProviders.fs` - GetTypeProviderImplementationTypes, CreateTypeProvider, ProvidedType等
- E-07: `src/Compiler/TypedTree/QuotationPickler.fs` - mkVar, mkApp, mkLambda, pickle, SimplePickle module
- E-08: `src/Compiler/TypedTree/TypedTreePickle.fs` - Table, WriterState, ReaderState, p_byte, u_byte等
- E-09: `src/Compiler/TypedTree/TcGlobals.fs` - TcGlobals, IntrinsicValRef, BuiltinAttribInfo
- E-10: `src/Compiler/TypedTree/UpdatePrettyTyparNames.fs` - updateVal, updateEntity, updateModuleOrNamespaceType

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

### CompilerGlobalState.fs（UT-TTR-001〜008）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | NiceNameGenerator.FreshCompilerGeneratedNameOfBasicNameの基本動作 | E-01 L30-32 | ○ |
| C-02 | 連番生成機能 | E-01 L25-28 | ○ |
| C-03 | FreshCompilerGeneratedNameの基本動作 | E-01 L34-35 | ○ |
| C-04 | IncrementOnlyの動作 | E-01 L37 | ○ |
| C-05 | StableNiceNameGenerator.GetUniqueCompilerGeneratedNameの安定性 | E-01 L50-53 | ○ |
| C-06 | ユニーク値の区別 | E-01 L47-53 | ○ |
| C-07 | newUnique関数の動作 | E-01 L75-76 | ○ |
| C-08 | newStamp関数の動作 | E-01 L80-83 | ○ |

### TypedTreeBasics.fs（UT-TTR-009〜036）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 | ValReprInfo.IsEmptyの空判定 | E-02 L37-40 | ○ |
| C-10 | ValReprInfo.IsEmptyの非空判定 | E-02 L37-40 | ○ |
| C-11 | InferTyparInfoの動作 | E-02 L42 | ○ |
| C-12 | HasNoArgsの判定 | E-02 L48 | ○ |
| C-13 | typeOfValの動作 | E-02 L54 | ○ |
| C-14 | nameOfValの動作 | E-02 L58 | ○ |
| C-15 | arityOfValの動作（ValReprInfoあり） | E-02 L60-63 | ○ |
| C-16 | arityOfValの動作（ValReprInfoなし） | E-02 L60-63 | ○ |
| C-17 | typarEqの等価性判定 | E-02 L88 | ○ |
| C-18 | typarEqの不等価性判定 | E-02 L88 | ○ |
| C-19 | valEqの参照等価性 | E-02 L94 | ○ |
| C-20 | ccuEqの等価性 | E-02 L97-102 | ○ |
| C-21 | ccuEqの未解決参照での等価性 | E-02 L99-101 | ○ |
| C-22 | mkLocalTyconRefの動作 | E-02 L130 | ○ |
| C-23 | mkNonLocalEntityRefの動作 | E-02 L132 | ○ |
| C-24 | mkLocalValRefの動作 | E-02 L350 | ○ |
| C-25 | copyTyparの動作 | E-02 L199-208 | ○ |
| C-26 | copyTyparのStaticReqクリア | E-02 L201 | ○ |
| C-27 | stripTyparEqnsの解決済み変数展開 | E-02 L300-327 | ○ |
| C-28 | stripTyparEqnsの未解決変数保持 | E-02 L321-322 | ○ |
| C-29 | combineNullnessの動作 | E-02 L237-253 | ○ |
| C-30 | addNullnessToTyの動作 | E-02 L283-298 | ○ |
| C-31 | addNullnessToTyの構造体型処理 | E-02 L292-296 | ○ |
| C-32 | primEntityRefEqの動作 | E-02 L469-485 | ○ |
| C-33 | primValRefEqの動作 | E-02 L498-506 | ○ |
| C-34 | canAccessFromの動作 | E-02 L529-530 | ○ |
| C-35 | canAccessFromEverywhereの動作 | E-02 L532 | ○ |
| C-36 | combineAccessの動作 | E-02 L548-555 | ○ |

### TypedTree.fs（UT-TTR-037〜055）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-37 | ValFlags.BaseOrThisInfoの取得 | E-03 L148-154 | ○ |
| C-38 | ValFlags.IsCompilerGeneratedの取得 | E-03 L158 | ○ |
| C-39 | ValFlags.WithIsCompilerGeneratedの更新 | E-03 L160-165 | ○ |
| C-40 | ValFlags.InlineInfoの取得 | E-03 L167-173 | ○ |
| C-41 | ValFlags.MutabilityInfoの取得 | E-03 L175-179 | ○ |
| C-42 | ValFlags.PickledBitsの取得 | E-03 L246-251 | ○ |
| C-43 | TyparFlags.IsFromErrorの取得 | E-03 L334 | ○ |
| C-44 | TyparFlags.StaticReqの取得 | E-03 L340-344 | ○ |
| C-45 | TyparFlags.Rigidityの取得 | E-03 L348-355 | ○ |
| C-46 | TyparFlags.Kindの取得 | E-03 L358-362 | ○ |
| C-47 | TyparFlags.WithStaticReqの更新 | E-03 L402-403 | ○ |
| C-48 | EntityFlags.IsModuleOrNamespaceの取得 | E-03 L420 | ○ |
| C-49 | EntityFlags.IsStructRecordOrUnionTypeの取得 | E-03 L438 | ○ |
| C-50 | EntityFlags.WithIsByRefLikeの更新 | E-03 L448-454 | ○ |
| C-51 | ValInline.ShouldInline（Always） | E-03 L55-58 | ○ |
| C-52 | ValInline.ShouldInline（Never） | E-03 L55-58 | ○ |
| C-53 | TyparKind.AttrNameの取得 | E-03 L261-264 | ○ |
| C-54 | TyparRigidity.ErrorIfUnifiedの判定 | E-03 L295 | ○ |
| C-55 | TyparRigidity.WarnIfUnifiedの判定 | E-03 L297 | ○ |

### TypedTreeOps.fs（UT-TTR-056〜079）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-56 | TyparMap.Itemの取得 | E-04 L52-55 | ○ |
| C-57 | TyparMap.ContainsKey（存在） | E-04 L57-59 | ○ |
| C-58 | TyparMap.ContainsKey（不在） | E-04 L57-59 | ○ |
| C-59 | TyparMap.Addの追加 | E-04 L69-71 | ○ |
| C-60 | TyconRefMap.Itemの取得 | E-04 L77 | ○ |
| C-61 | TyconRefMap.OfListの生成 | E-04 L86 | ○ |
| C-62 | ValMap.Itemの取得 | E-04 L93 | ○ |
| C-63 | ValMap.Removeの削除 | E-04 L97 | ○ |
| C-64 | remapTypeAuxのTType_varリマップ | E-04 L172-174 | ○ |
| C-65 | remapTypeAuxのTType_appリマップ | E-04 L176-186 | ○ |
| C-66 | remapTypeAuxのTType_tupleリマップ | E-04 L199-203 | ○ |
| C-67 | remapTypeAuxのTType_funリマップ | E-04 L205-209 | ○ |
| C-68 | remapTypeAuxのTType_forallリマップ | E-04 L211-213 | ○ |
| C-69 | remapMeasureAuxのMeasure.Constリマップ | E-04 L222-225 | ○ |
| C-70 | remapTraitInfoの動作 | E-04 L274-310 | ○ |
| C-71 | isRemapEmptyの判定 | E-04 L143-146 | ○ |
| C-72 | mkTyparInstの動作 | E-04 L163-164 | ○ |
| C-73 | instTypeの動作 | E-04 L406 | ○ |
| C-74 | instTypeの空インスタンス化 | E-04 L406 | ○ |
| C-75 | tyconRefEqの動作 | E-04 L425 | ○ |
| C-76 | valRefEqの動作 | E-04 L426 | ○ |
| C-77 | MeasureExprConExponentの動作 | E-04 L451-457 | ○ |
| C-78 | MeasureVarExponentの動作 | E-04 L470-476 | ○ |
| C-79 | ListMeasureVarOccsの動作 | E-04 L479-487 | ○ |

### tainted.fs（UT-TTR-080〜088）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-80 | Tainted.Protectの保護実行 | E-05 L97-109 | ○ |
| C-81 | Tainted.Protectの例外処理 | E-05 L101-109 | ○ |
| C-82 | Tainted.PApplyの動作 | E-05 L113-115 | ○ |
| C-83 | Tainted.PApplyArrayの動作 | E-05 L135-139 | ○ |
| C-84 | Tainted.PApplyArrayのnullエラー | E-05 L138 | ○ |
| C-85 | Tainted.PApplyOptionのSome | E-05 L147-151 | ○ |
| C-86 | Tainted.PApplyOptionのNone | E-05 L149-150 | ○ |
| C-87 | Tainted.Eqの動作 | E-05 L177 | ○ |
| C-88 | Tainted.EqTaintedの動作 | E-05 L179-180 | ○ |

### TypeProviders.fs（UT-TTR-089〜103）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-89 | GetTypeProviderImplementationTypesの取得 | E-06 L48-94 | ○ |
| C-90 | GetTypeProviderImplementationTypesのアセンブリ不在 | E-06 L70-94 | ○ |
| C-91 | CreateTypeProviderの作成 | E-06 L104-147 | ○ |
| C-92 | CreateTypeProviderのコンストラクタエラー | E-06 L146-147 | ○ |
| C-93 | ProvidedTypeContext.TryGetILTypeRefの存在 | E-06 L310-316 | ○ |
| C-94 | ProvidedTypeContext.TryGetILTypeRefの不在 | E-06 L311-312 | ○ |
| C-95 | ProvidedType.GetMethodsの取得 | E-06 L376 | ○ |
| C-96 | ProvidedType.GetPropertiesの取得 | E-06 L382 | ○ |
| C-97 | ProvidedType.IsErasedの判定 | E-06 L362 | ○ |
| C-98 | ValidateProvidedTypeDefinitionの検証 | E-06 L1182-1199 | ○ |
| C-99 | ValidateProvidedTypeDefinitionの不正名検証 | E-06 L1193-1195 | ○ |
| C-100 | TryResolveProvidedTypeの解決 | E-06 L1237-1244 | ○ |
| C-101 | TryResolveProvidedTypeの失敗 | E-06 L1242-1244 | ○ |
| C-102 | TryApplyProvidedTypeの適用 | E-06 L1291-1316 | ○ |
| C-103 | TryApplyProvidedTypeの空引数 | E-06 L1292-1293 | ○ |

### QuotationPickler.fs（UT-TTR-104〜114）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-104 | mkVarの動作 | E-07 L117 | ○ |
| C-105 | mkAppの動作 | E-07 L121 | ○ |
| C-106 | mkLambdaの動作 | E-07 L123 | ○ |
| C-107 | mkLetの動作 | E-07 L139 | ○ |
| C-108 | mkCondの動作 | E-07 L129 | ○ |
| C-109 | mkTupleの動作 | E-07 L137 | ○ |
| C-110 | mkMethodCallの動作 | E-07 L231 | ○ |
| C-111 | pickleの動作 | E-07 L519 | ○ |
| C-112 | p_int32の1バイト書き込み | E-07 L301-309 | ○ |
| C-113 | p_int32の2バイト書き込み | E-07 L304-305 | ○ |
| C-114 | p_stringの動作 | E-07 L365 | ○ |

### TypedTreePickle.fs（UT-TTR-115〜128）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-115 | p_byteの動作 | E-08 L218 | ○ |
| C-116 | p_int32の動作 | E-08 L240-248 | ○ |
| C-117 | p_int64の動作 | E-08 L298-300 | ○ |
| C-118 | p_bytesの動作 | E-08 L274-277 | ○ |
| C-119 | u_byteの動作 | E-08 L366 | ○ |
| C-120 | u_int32の動作 | E-08 L395-406 | ○ |
| C-121 | u_int64の動作 | E-08 L441-444 | ○ |
| C-122 | u_bytesの動作 | E-08 L427 | ○ |
| C-123 | Table.Addの動作 | E-08 L85-90 | ○ |
| C-124 | Table.FindOrAddの既存 | E-08 L92-95 | ○ |
| C-125 | Table.FindOrAddの新規 | E-08 L95 | ○ |
| C-126 | NodeInTable.Getの動作 | E-08 L179 | ○ |
| C-127 | PickledDataWithReferences.Fixupの動作 | E-08 L51-53 | ○ |
| C-128 | PickledDataWithReferences.OptionalFixupの動作 | E-08 L56-67 | ○ |

### TcGlobals.fs（UT-TTR-129〜133）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-129 | TcGlobalsコンストラクタの動作 | E-09 L185-200 | ○ |
| C-130 | IntrinsicValRef.Nameの取得 | E-09 L36 | ○ |
| C-131 | ValRefForIntrinsicの動作 | E-09 L45 | ○ |
| C-132 | BuiltinAttribInfo.TyconRefの取得 | E-09 L93 | ○ |
| C-133 | BuiltinAttribInfo.TypeRefの取得 | E-09 L95 | ○ |

### UpdatePrettyTyparNames.fs（UT-TTR-134〜137）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-134 | updateValの動作 | E-10 L9-12 | ○ |
| C-135 | updateValの空型パラメータ | E-10 L10 | ○ |
| C-136 | updateEntityの動作 | E-10 L14-19 | ○ |
| C-137 | updateModuleOrNamespaceTypeの動作 | E-10 L21-23 | ○ |

## 4) 不足情報（Unknown / Missing）
- 現時点で根拠なしの主張はありません
- 追加検討が必要な領域：
  - TypedTree.fs, TypedTreeOps.fsは非常に大きなファイルであり、すべての関数を網羅していない可能性があります
  - 候補：Entity型の各メソッド / Val型の各プロパティ / TType型のパターンマッチング関連

## 5) リスクフラグ（レビュー観点）
- 0: **CompilerGlobalState関連（UT-TTR-001〜008）** - グローバル状態の並行性は検証済み
- 0: **フラグ操作（UT-TTR-037〜055）** - ビット演算は明確に定義されている
- 1: **型リマップ（UT-TTR-064〜079）** - 再帰的な型変換の境界条件を追加検証推奨
- 1: **TypeProvider関連（UT-TTR-089〜103）** - 条件付きコンパイルの影響を確認
- 0: **シリアライズ（UT-TTR-115〜128）** - 基本的なpickle/unpickle操作は安定

## 6) レビュアーチェックリスト（最小）
- [ ] テストIDの命名規則（UT-TTR-XXX）が一貫しているか
- [ ] 対象ファイルパスが正確か
- [ ] 正常系/異常系/境界値のバランスが適切か
- [ ] 優先度の設定が妥当か（金額計算なし、型システム関連は高優先度）
- [ ] TypeProvider関連テストがNO_TYPEPROVIDERSフラグの影響を考慮しているか
- [ ] シリアライズ/デシリアライズの対称性テストが含まれているか
