---
generated_at: 2026-02-19 06:30:00
metrics:
  claims_total: 120
  claims_with_evidence: 118
  claims_without_evidence: 2
confidence_derived: 0.98
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：118 / 120、根拠なし：2
- 優先レビュー（高）
  1. **UT-SVC-003**：負のキャッシュサイズの挙動は実装依存のため要確認
  2. **UT-SVC-105**：空ストアビルド時の正確な挙動は実装確認が必要

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

- E-01: `src/Compiler/Service/service.fsi` - FSharpChecker型定義、メソッドシグネチャ
- E-02: `src/Compiler/Service/BackgroundCompiler.fsi` - IBackgroundCompilerインターフェース、BackgroundCompiler型定義
- E-03: `src/Compiler/Service/FSharpCheckerResults.fsi` - FSharpCheckFileResults、FSharpCheckProjectResults、FSharpParseFileResults型定義
- E-04: `src/Compiler/Service/IncrementalBuild.fsi` - IncrementalBuilder、FrameworkImportsCache、PartialCheckResults型定義
- E-05: `src/Compiler/Service/QuickParse.fsi` - QuickParseモジュール関数定義
- E-06: `src/Compiler/Service/ServiceLexing.fsi` - FSharpSourceTokenizer、FSharpLineTokenizer、FSharpLexer型定義
- E-07: `src/Compiler/Service/ServiceNavigation.fsi` - Navigation、NavigateTo モジュール定義
- E-08: `src/Compiler/Service/ServiceStructure.fsi` - Structure モジュール定義
- E-09: `src/Compiler/Service/SemanticClassification.fsi` - SemanticClassificationType、TcResolutions拡張
- E-10: `src/Compiler/Service/ServiceDeclarationLists.fsi` - DeclarationListInfo、MethodGroup、ToolTipElement型定義
- E-11: `src/Compiler/Service/ServiceParsedInputOps.fsi` - ParsedInputモジュール関数定義
- E-12: `src/Compiler/Service/TransparentCompiler.fsi` - TransparentCompiler、CacheSizes、CompilerCaches型定義
- E-13: `src/Compiler/Service/ServiceInterfaceStubGenerator.fsi` - InterfaceStubGeneratorモジュール定義
- E-14: `src/Compiler/Service/ServiceAnalysis.fsi` - UnusedOpens、SimplifyNames、UnusedDeclarationsモジュール定義
- E-15: `src/Compiler/Service/ServiceAssemblyContent.fsi` - AssemblyContent、EntityCache型定義
- E-16: `src/Compiler/Service/ServiceParamInfoLocations.fsi` - ParameterLocations型定義
- E-17: `src/Compiler/Service/ServiceParseTreeWalk.fsi` - SyntaxTraversal、ParsedInputモジュール定義
- E-18: `src/Compiler/Service/ItemKey.fsi` - ItemKeyStore、ItemKeyStoreBuilder型定義
- E-19: `src/Compiler/Service/ExternalSymbol.fsi` - FindDeclExternalType、FindDeclExternalSymbol、FindDeclResult型定義
- E-20: `src/Compiler/Service/FSharpParseFileResults.fsi` - FSharpParseFileResults型定義

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

### FSharpChecker（UT-SVC-001〜025）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | FSharpChecker.Createでインスタンス作成 | E-01 | ○ |
| C-002 | projectCacheSizeパラメータのカスタマイズ | E-01 | ○ |
| C-003 | 負のキャッシュサイズのハンドリング | **根拠不足** | △ |
| C-004 | ParseFileで有効なソースをパース | E-01 | ○ |
| C-005 | 空ソースコードのパース | E-01 | ○ |
| C-006 | 構文エラーを含むソースのパース | E-01, E-03 | ○ |
| C-007 | CheckFileInProjectで型チェック | E-01 | ○ |
| C-008 | 存在しないファイルパスの型チェック | E-01 | ○ |
| C-009 | ParseAndCheckFileInProjectの統合動作 | E-01 | ○ |
| C-010 | ParseAndCheckProjectでプロジェクト型チェック | E-01 | ○ |
| C-011 | MatchBracesで括弧マッチング | E-01 | ○ |
| C-012 | 括弧なしソースでのMatchBraces | E-01 | ○ |
| C-013 | GetProjectOptionsFromScriptでスクリプトオプション取得 | E-01 | ○ |
| C-014 | GetProjectOptionsFromCommandLineArgsでオプション生成 | E-01 | ○ |
| C-015 | GetParsingOptionsFromProjectOptionsでパースオプション変換 | E-01 | ○ |
| C-016 | InvalidateAllでキャッシュ無効化 | E-01 | ○ |
| C-017 | InvalidateConfigurationで設定無効化 | E-01 | ○ |
| C-018 | ClearCacheでキャッシュクリア | E-01 | ○ |
| C-019 | TryGetRecentCheckResultsForFileでキャッシュ結果取得 | E-01 | ○ |
| C-020 | 未チェックファイルのキャッシュ取得 | E-01 | ○ |
| C-021 | FindBackgroundReferencesInFileで参照検索 | E-01 | ○ |
| C-022 | GetBackgroundSemanticClassificationForFileでセマンティック分類取得 | E-01 | ○ |
| C-023 | Compileでコンパイル実行 | E-01 | ○ |
| C-024 | TokenizeLineで行トークン化 | E-01 | ○ |
| C-025 | TokenizeFileでファイルトークン化 | E-01 | ○ |

### FSharpCheckFileResults（UT-SVC-026〜040）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-026 | GetDeclarationListInfoで宣言リスト取得 | E-03 | ○ |
| C-027 | 空部分名での宣言リスト取得 | E-03 | ○ |
| C-028 | GetToolTipでツールチップ取得 | E-03 | ○ |
| C-029 | 存在しない識別子のツールチップ | E-03 | ○ |
| C-030 | GetMethodsでメソッドグループ取得 | E-03 | ○ |
| C-031 | GetDeclarationLocationで宣言位置取得 | E-03, E-19 | ○ |
| C-032 | 宣言が見つからない場合のハンドリング | E-03, E-19 | ○ |
| C-033 | GetSymbolUseAtLocationでシンボル使用取得 | E-03 | ○ |
| C-034 | シンボル不存在位置でのGetSymbolUseAtLocation | E-03 | ○ |
| C-035 | GetAllUsesOfAllSymbolsInFileで全シンボル使用取得 | E-03 | ○ |
| C-036 | GetUsesOfSymbolInFileで特定シンボル使用取得 | E-03 | ○ |
| C-037 | GetSemanticClassificationでセマンティック分類取得 | E-03, E-09 | ○ |
| C-038 | GetFormatSpecifierLocationsAndArityでフォーマット指定子取得 | E-03 | ○ |
| C-039 | GetDisplayContextForPosで表示コンテキスト取得 | E-03 | ○ |
| C-040 | GenerateSignatureでシグネチャ生成 | E-03 | ○ |

### FSharpParseFileResults（UT-SVC-041〜045）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-041 | GetNavigationItemsでナビゲーションアイテム取得 | E-20 | ○ |
| C-042 | ValidateBreakpointLocationでブレークポイント位置検証 | E-20 | ○ |
| C-043 | 無効なブレークポイント位置の検証 | E-20 | ○ |
| C-044 | TryRangeOfNameOfNearestOuterBindingContainingPosでバインディング名範囲取得 | E-20 | ○ |
| C-045 | FindParameterLocationsでパラメータ位置情報取得 | E-20, E-16 | ○ |

### QuickParse（UT-SVC-046〜050）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-046 | GetCompleteIdentifierIslandで識別子取得 | E-05 | ○ |
| C-047 | 識別子なし位置でのGetCompleteIdentifierIsland | E-05 | ○ |
| C-048 | GetPartialLongNameで部分長名取得 | E-05 | ○ |
| C-049 | GetPartialLongNameExで拡張部分長名取得 | E-05 | ○ |
| C-050 | TestMemberOrOverrideDeclarationでメンバー宣言検出 | E-05 | ○ |

### ServiceLexing（UT-SVC-051〜054）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-051 | CreateLineTokenizerで行トークナイザー作成 | E-06 | ○ |
| C-052 | ScanTokenでトークンスキャン | E-06 | ○ |
| C-053 | 行末でのトークンスキャン | E-06 | ○ |
| C-054 | FSharpLexer.Tokenizeでテキストトークン化 | E-06 | ○ |

### ServiceNavigation（UT-SVC-055〜056）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-055 | Navigation.getNavigationでナビゲーション情報取得 | E-07 | ○ |
| C-056 | NavigateTo.GetNavigableItemsでナビゲート可能アイテム取得 | E-07 | ○ |

### ServiceStructure（UT-SVC-057〜058）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-057 | Structure.getOutliningRangesでアウトライン範囲取得 | E-08 | ○ |
| C-058 | 空ソースファイルでのアウトライン | E-08 | ○ |

### SemanticClassification（UT-SVC-059）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-059 | TcResolutions.GetSemanticClassificationでセマンティック分類取得 | E-09 | ○ |

### ServiceDeclarationLists（UT-SVC-060〜063）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-060 | DeclarationListInfo.Createで宣言リスト作成 | E-10 | ○ |
| C-061 | DeclarationListInfo.Emptyで空宣言リスト取得 | E-10 | ○ |
| C-062 | DeclarationListItem.NameInCodeでコード挿入用名前取得 | E-10 | ○ |
| C-063 | MethodGroup.Createでメソッドグループ作成 | E-10 | ○ |

### ServiceParsedInputOps（UT-SVC-064〜068）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-064 | TryGetCompletionContextで補完コンテキスト取得 | E-11 | ○ |
| C-065 | 無効位置での補完コンテキスト取得 | E-11 | ○ |
| C-066 | GetEntityKindでエンティティ種別取得 | E-11 | ○ |
| C-067 | TryFindInsertionContextで挿入コンテキスト取得 | E-11 | ○ |
| C-068 | GetLongIdentAtで長識別子取得 | E-11 | ○ |

### BackgroundCompiler（UT-SVC-069〜072）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-069 | BackgroundCompilerコンストラクタ | E-02 | ○ |
| C-070 | BackgroundCompiler.ParseFileでバックグラウンドパース | E-02 | ○ |
| C-071 | BackgroundCompiler.CheckFileInProjectでバックグラウンド型チェック | E-02 | ○ |
| C-072 | BackgroundCompiler.ClearCachesでキャッシュクリア | E-02 | ○ |

### IncrementalBuild（UT-SVC-073〜081）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-073 | TryCreateIncrementalBuilderForProjectOptionsでビルダー作成 | E-04 | ○ |
| C-074 | GetParseResultsForFileでパース結果取得 | E-04 | ○ |
| C-075 | GetCheckResultsBeforeFileInProjectで部分型チェック結果取得 | E-04 | ○ |
| C-076 | GetCheckResultsAfterFileInProjectで部分型チェック結果取得 | E-04 | ○ |
| C-077 | ContainsFileでファイル存在確認 | E-04 | ○ |
| C-078 | ContainsFileでファイル不存在確認 | E-04 | ○ |
| C-079 | PartialCheckResults.GetOrComputeTcInfoで型チェック情報取得 | E-04 | ○ |
| C-080 | FrameworkImportsCache.Getでフレームワークインポート取得 | E-04 | ○ |
| C-081 | FrameworkImportsCache.Clearでキャッシュクリア | E-04 | ○ |

### TransparentCompiler（UT-SVC-082〜087）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-082 | TransparentCompilerコンストラクタ | E-12 | ○ |
| C-083 | TransparentCompiler.ParseFileでパース | E-12 | ○ |
| C-084 | TransparentCompiler.ParseAndCheckFileInProjectでパース・型チェック | E-12 | ○ |
| C-085 | TransparentCompiler.FindReferencesInFileで参照検索 | E-12 | ○ |
| C-086 | CacheSizes.Createでキャッシュサイズ作成 | E-12 | ○ |
| C-087 | CompilerCachesコンストラクタ | E-12 | ○ |

### ServiceInterfaceStubGenerator（UT-SVC-088〜091）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-088 | GetInterfaceMembersでインターフェースメンバー取得 | E-13 | ○ |
| C-089 | HasNoInterfaceMemberで空インターフェース確認 | E-13 | ○ |
| C-090 | FormatInterfaceでインターフェーススタブ生成 | E-13 | ○ |
| C-091 | TryFindInterfaceDeclarationでインターフェース宣言検出 | E-13 | ○ |

### ServiceAnalysis（UT-SVC-092〜094）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-092 | UnusedOpens.getUnusedOpensで未使用open検出 | E-14 | ○ |
| C-093 | SimplifyNames.getSimplifiableNamesで簡略化可能名前検出 | E-14 | ○ |
| C-094 | UnusedDeclarations.getUnusedDeclarationsで未使用宣言検出 | E-14 | ○ |

### ServiceAssemblyContent（UT-SVC-095〜096）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-095 | GetAssemblySignatureContentでアセンブリコンテンツ取得 | E-15 | ○ |
| C-096 | EntityCache.Clearでキャッシュクリア | E-15 | ○ |

### ServiceParamInfoLocations（UT-SVC-097〜098）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-097 | ParameterLocations.Findでパラメータ位置検出 | E-16 | ○ |
| C-098 | パラメータ位置未検出のハンドリング | E-16 | ○ |

### ServiceParseTreeWalk（UT-SVC-099〜101）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-099 | SyntaxTraversal.TraverseでAST走査 | E-17 | ○ |
| C-100 | ParsedInput.foldでASTフォールド | E-17 | ○ |
| C-101 | ParsedInput.tryPickでASTノード検索 | E-17 | ○ |

### ItemKey（UT-SVC-102〜105）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-102 | ItemKeyStore.FindAllでアイテムキー検索 | E-18 | ○ |
| C-103 | ItemKeyStoreBuilder.Writeでアイテムキー書き込み | E-18 | ○ |
| C-104 | ItemKeyStoreBuilder.TryBuildAndResetでストアビルド | E-18 | ○ |
| C-105 | 空ストアビルド時の挙動 | **根拠不足** | △ |

### ExternalSymbol（UT-SVC-106〜107）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-106 | FindDeclExternalType.ToStringで文字列化 | E-19 | ○ |
| C-107 | FindDeclExternalParam.Createで外部パラメータ作成 | E-19 | ○ |

### FSharpCheckProjectResults（UT-SVC-108〜109）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-108 | GetUsesOfSymbolでプロジェクトシンボル使用検索 | E-03 | ○ |
| C-109 | GetAllUsesOfAllSymbolsで全シンボル使用取得 | E-03 | ○ |

### FSharpSymbolUse（UT-SVC-110〜111）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-110 | IsFromDefinitionで定義判定 | E-03 | ○ |
| C-111 | IsFromUseで使用判定 | E-03 | ○ |

### FSharpProjectOptions（UT-SVC-112）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-112 | AreSameForCheckingでプロジェクトオプション比較 | E-03 | ○ |

### CompilerEnvironment（UT-SVC-113〜116）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-113 | BinFolderOfDefaultFSharpCompilerでコンパイラパス取得 | E-01 | ○ |
| C-114 | IsScriptFileでスクリプトファイル判定 | E-01 | ○ |
| C-115 | IsScriptFileで通常ファイル判定 | E-01 | ○ |
| C-116 | IsCompilableでコンパイル可能判定 | E-01 | ○ |

### その他（UT-SVC-117〜120）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-117 | IsRelativeNameResolvableFromSymbolで相対名解決可能判定 | E-03 | ○ |
| C-118 | ImplementationFileで実装ファイル取得 | E-03 | ○ |
| C-119 | OpenDeclarationsでオープン宣言取得 | E-03 | ○ |
| C-120 | ParseAndCheckFile.parseFileで内部パース | E-03 | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-SVC-003（負のキャッシュサイズ）**: .fsiファイルでは負値の挙動が明示されていない。実装コード（service.fs）の確認が必要。
  - 候補：service.fs内のCreate実装 / ArgumentExceptionスロー / デフォルト値使用
- **UT-SVC-105（空ストアビルド）**: ItemKeyStoreBuilder.TryBuildAndResetが空の場合にNoneを返すかどうか、.fsiファイルでは明示されていない。
  - 候補：ItemKey.fs内の実装確認 / None返却 / 空のItemKeyStore返却

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 大半のテストケース（116件）はシグネチャファイルから直接導出可能
- **1: 中リスク** - 異常系テストケース（境界値、エラー処理）は実装依存の部分あり
- **2: 高リスク** - 2件のテストケース（UT-SVC-003, UT-SVC-105）は実装確認が必要

## 6) レビュアーチェックリスト（最小）
- [ ] 各テストケースIDが重複していないこと
- [ ] 対象ファイルパスがCompiler-Serviceモジュール内であること
- [ ] 正常系・異常系・境界値の観点が適切にカバーされていること
- [ ] 優先度（高/中/低）が機能の重要度に応じて適切に設定されていること
- [ ] テストケース名が具体的で理解しやすいこと
- [ ] 入力値と期待結果が対応していること
- [ ] FSharpChecker、BackgroundCompiler、IncrementalBuilder等の主要クラスが網羅されていること
- [ ] 未使用の根拠（△マーク）の2件について実装コードを確認すること
