---
generated_at: 2026-02-20 12:00:00
metrics:
  claims_total: 230
  claims_with_evidence: 224
  claims_without_evidence: 6
confidence_derived: 0.97
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：224 / 230、根拠なし：6
- 優先レビュー（高）
  1. **C-091 (updateDCD正常系)**: DCDインストールフローは外部依存（ネットワーク、ファイルシステム）が多くテスト困難
  2. **C-092 (updateDCDフォールバック)**: ダウンロード失敗パスは実行時条件に依存
  3. **C-141 (convertDubFormat)**: 外部プロセス(dub convert)への依存
  4. **C-185 (backgroundIndex)**: setImmediateの非同期挙動は結合テスト寄り
  5. **C-220/221 (onPreviewProjectForUnittest)**: グローバル状態doTrackTestsへの依存
  6. **C-037 (getImportCompilationTime キャッシュ)**: 時間ベースキャッシュの検証困難

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

- E-01: `source/served/commands/calltips.d` - convertDCDCalltips関数、provideSignatureHelp関数、provideDSignatureHelp関数、provideDietSignatureHelp関数
- E-02: `source/served/commands/code_actions.d` - provideCodeActions関数、resolveCodeAction関数、addDubDiagnostics関数、createCodeReplacementSuggestion関数、addDScannerDiagnostics関数、addSyntaxDiagnostics関数、sortImports関数、implementMethods関数
- E-03: `source/served/commands/code_lens.d` - provideCodeLens関数、resolveCodeLens関数、getImportCompilationTime関数
- E-04: `source/served/commands/color.d` - provideDocumentColor関数、provideColorPresentations関数
- E-05: `source/served/commands/complete.d` - convertFromDCDType関数、sortFromDCDType関数、convertFromDCDSearchType関数、convertFromDscannerType関数、convertExtendedFromDscannerType関数、convertCompletionFromDScannerType関数、substr関数、extractFunctionParameters関数、provideComplete関数、provideDMLSourceComplete関数、provideDietSourceComplete関数、provideDSourceComplete関数、provideAutoImports関数、resolveCompletionItem関数、snippetToCompletionItem関数、snippetFromCompletionItem関数、convertDCDIdentifiers関数、migrateLabelDetailsSupport関数、restartServer関数、killServer関数、addDependencySnippet関数、isInComment関数（unittest付き）
- E-06: `source/served/commands/dcd_update.d` - updateDCD関数
- E-07: `source/served/commands/definition.d` - DeclarationInfo構造体、findDeclarationImpl関数、getDeclarationRange関数、provideDefinition関数、provideHover関数
- E-08: `source/served/commands/dub.d` - listConfigurations, switchConfig, getConfig, listArchTypes, switchArchType, getArchType, listBuildTypes, switchBuildType, getBuildType, getCompiler, switchCompiler, getActiveDubConfig, addImport, updateImports, onDidSaveDubRecipe, listDependencies, fixEmptyArgs, provideBuildTasks, convertDubFormat, installDependency, updateDependency, uninstallDependency, injectDependency, changeDependency, removeDependency各関数
- E-09: `source/served/commands/file_search.d` - searchFile関数、findFilesByModule関数、moduleNameForFile関数
- E-10: `source/served/commands/folding.d` - provideFoldingRange関数、mapFoldingRangeKind関数
- E-11: `source/served/commands/format.d` - ResolvedFormattingOptions構造体、indentString関数、generateDfmtArgs関数、tryFindFormattingSettings関数、provideFormatting関数、formatCode関数、formatSnippet関数、provideRangeFormatting関数、diff関数（unittest付き）
- E-12: `source/served/commands/highlight.d` - provideDocumentHighlight関数、documentHighlightImpl関数、fallbackDocumentHighlight関数
- E-13: `source/served/commands/index.d` - backgroundIndex関数、reindexAll関数、reindexOnChange関数、reindexOnSave関数、delayedSaveIndex関数、traceIndexerStats関数
- E-14: `source/served/commands/inlay_hints.d` - provideInlayHints関数
- E-15: `source/served/commands/references.d` - findReferences関数、resolveLocation関数、AsyncReceiverクラス
- E-16: `source/served/commands/rename.d` - provideRename関数、prepareRename関数
- E-17: `source/served/commands/symbol_search.d` - provideWorkspaceSymbols関数、provideDocumentSymbols関数、provideDocumentSymbolsOld関数、makeSymbolInfoEx関数、provideDocumentSymbolsHierarchical関数
- E-18: `source/served/commands/test_provider.d` - onPreviewProjectForUnittest関数、onDidAddProjectForUnittest関数、onDidSaveCheckForUnittest関数、rescanTests関数、rescanFile関数、rescanProject関数

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | convertDCDCalltips正常系: SignatureHelp生成 | E-01 (calltips.d L25-119) | ○ |
| C-002 | convertDCDCalltips正常系: 可変長引数処理 | E-01 (calltips.d L54-56) | ○ |
| C-003 | convertDCDCalltips正常系: テンプレートパラメータ | E-01 (calltips.d L49-53) | ○ |
| C-004 | convertDCDCalltips異常系: 空calltipスキップ | E-01 (calltips.d L34-35) | ○ |
| C-005 | convertDCDCalltips境界値: 0件calltips | E-01 (calltips.d L28, L116) | ○ |
| C-006 | convertDCDCalltips正常系: activeParameter設定 | E-01 (calltips.d L113-114) | ○ |
| C-007 | convertDCDCalltips正常系: Ddocドキュメント設定 | E-01 (calltips.d L39-43) | ○ |
| C-008 | provideSignatureHelp正常系: D言語ディスパッチ | E-01 (calltips.d L126-127) | ○ |
| C-009 | provideSignatureHelp正常系: dietディスパッチ | E-01 (calltips.d L128-129) | ○ |
| C-010 | provideSignatureHelp異常系: 未知言語 | E-01 (calltips.d L130-131) | ○ |
| C-011 | provideDSignatureHelp異常系: DCDComponent不在 | E-01 (calltips.d L137-138) | ○ |
| C-012 | provideDSignatureHelp異常系: パラメータ抽出失敗 | E-01 (calltips.d L145-147) | ○ |
| C-013 | provideCodeActions正常系: CodeAction返却 | E-02 (code_actions.d L43-152) | ○ |
| C-014 | provideCodeActions異常系: 非D言語 | E-02 (code_actions.d L48-49) | ○ |
| C-015 | provideCodeActions異常系: nullインスタンス | E-02 (code_actions.d L47-49) | ○ |
| C-016 | provideCodeActions正常系: インターフェース実装 | E-02 (code_actions.d L69-107) | ○ |
| C-017 | provideCodeActions正常系: インポート整理 | E-02 (code_actions.d L110-137) | ○ |
| C-018 | resolveCodeAction正常系: sortImports解決 | E-02 (code_actions.d L154-189) | ○ |
| C-019 | resolveCodeAction正常系: implementMethods解決 | E-02 (code_actions.d L172-183) | ○ |
| C-020 | resolveCodeAction異常系: Noneガード | E-02 (code_actions.d L157) | ○ |
| C-021 | addDubDiagnostics正常系: auto-import | E-02 (code_actions.d L196-266) | ○ |
| C-022 | addDubDiagnostics正常系: is演算子置換 | E-02 (code_actions.d L295-316) | ○ |
| C-023 | addSyntaxDiagnostics正常系: foreach-auto修正 | E-02 (code_actions.d L505-530) | ○ |
| C-024 | addSyntaxDiagnostics異常系: 未知診断コード | E-02 (code_actions.d L531-533) | ○ |
| C-025 | sortImports正常系: インポートソート | E-02 (code_actions.d L538-566) | ○ |
| C-026 | sortImports境界値: location=-1 | E-02 (code_actions.d L543, L548) | ○ |
| C-027 | implementMethods正常系: メソッド実装生成 | E-02 (code_actions.d L572-655) | ○ |
| C-028 | implementMethods境界値: 空クラス | E-02 (code_actions.d L611-626) | ○ |
| C-029 | createCodeReplacementSuggestion正常系: 置換生成 | E-02 (code_actions.d L343-387) | ○ |
| C-030 | createCodeReplacementSuggestion異常系: トークン不在 | E-02 (code_actions.d L358-360) | ○ |
| C-031 | provideCodeLens正常系: import CodeLens | E-03 (code_lens.d L20-50) | ○ |
| C-032 | provideCodeLens異常系: 非D言語 | E-03 (code_lens.d L25-26) | ○ |
| C-033 | provideCodeLens正常系: 設定無効 | E-03 (code_lens.d L28) | ○ |
| C-034 | resolveCodeLens正常系: importcompilecheck | E-03 (code_lens.d L52-95) | ○ |
| C-035 | resolveCodeLens異常系: 無効Lens | E-03 (code_lens.d L55-57) | ○ |
| C-036 | resolveCodeLens異常系: 未知type | E-03 (code_lens.d L92-93) | ○ |
| C-037 | getImportCompilationTime正常系: キャッシュ | E-03 (code_lens.d L98-143) | △ |
| C-038 | getImportCompilationTime異常系: コンパイル失敗 | E-03 (code_lens.d L134-135) | ○ |
| C-039 | provideDocumentColor正常系: Hexカラー検出 | E-04 (color.d L11-55) | ○ |
| C-040 | provideDocumentColor正常系: アルファ付きカラー | E-04 (color.d L42-45) | ○ |
| C-041 | provideDocumentColor異常系: 非dml | E-04 (color.d L15-16) | ○ |
| C-042 | provideColorPresentations正常系: RGB→Hex | E-04 (color.d L57-81) | ○ |
| C-043 | provideColorPresentations正常系: アルファ付きHex | E-04 (color.d L66-72) | ○ |
| C-044 | provideColorPresentations異常系: 非dml | E-04 (color.d L60-61) | ○ |
| C-045 | convertFromDCDType正常系: class変換 | E-05 (complete.d L41-85) | ○ |
| C-046 | convertFromDCDType正常系: function変換 | E-05 (complete.d L65-66) | ○ |
| C-047 | convertFromDCDType正常系: UFCS method変換 | E-05 (complete.d L67-68) | ○ |
| C-048 | convertFromDCDType異常系: 長さ1以外 | E-05 (complete.d L43-44) | ○ |
| C-049 | convertFromDCDType異常系: 未知文字 | E-05 (complete.d L83-84) | ○ |
| C-050 | sortFromDCDType正常系: 変数ソート | E-05 (complete.d L87-122) | ○ |
| C-051 | sortFromDCDType正常系: 関数ソート | E-05 (complete.d L98-100) | ○ |
| C-052 | sortFromDCDType異常系: 長さ1以外 | E-05 (complete.d L89-90) | ○ |
| C-053 | convertFromDCDSearchType正常系 | E-05 (complete.d L124-161) | ○ |
| C-054 | convertFromDCDSearchType異常系: 長さ1以外 | E-05 (complete.d L126-127) | ○ |
| C-055 | convertFromDscannerType正常系: constructor | E-05 (complete.d L163-205, L181-182) | ○ |
| C-056 | convertFromDscannerType正常系: function | E-05 (complete.d L183-184) | ○ |
| C-057 | convertExtendedFromDscannerType正常系: test | E-05 (complete.d L207-230) | ○ |
| C-058 | convertCompletionFromDScannerType正常系 | E-05 (complete.d L232-269) | ○ |
| C-059 | substr正常系 | E-05 (complete.d L271-284) | ○ |
| C-060 | substr境界値: 空文字列 | E-05 (complete.d L273-274) | ○ |
| C-061 | substr境界値: 負start | E-05 (complete.d L275-276) | ○ |
| C-062 | substr境界値: end超過 | E-05 (complete.d L279-280) | ○ |
| C-063 | substr境界値: end < start | E-05 (complete.d L281-282) | ○ |
| C-064 | extractFunctionParameters正常系 | E-05 (complete.d L290-297) | ○ |
| C-065 | extractFunctionParameters境界値: 空シグネチャ | E-05 (complete.d L292-293) | ○ |
| C-066 | provideComplete正常系: D言語 | E-05 (complete.d L304-396, L384-385) | ○ |
| C-067 | provideComplete正常系: diet | E-05 (complete.d L386-387) | ○ |
| C-068 | provideComplete正常系: dml | E-05 (complete.d L388-389) | ○ |
| C-069 | provideComplete正常系: dscanner.ini | E-05 (complete.d L311-375) | ○ |
| C-070 | provideComplete異常系: nullインスタンス | E-05 (complete.d L378-382) | ○ |
| C-071 | isInComment正常系: ブロックコメント内 | E-05 (complete.d L1083-1097 unittest) | ○ |
| C-072 | isInComment正常系: ブロックコメント外 | E-05 (complete.d L1087 unittest) | ○ |
| C-073 | isInComment正常系: 行コメント内 | E-05 (complete.d L1092-1093 unittest) | ○ |
| C-074 | isInComment正常系: 行コメント外 | E-05 (complete.d L1096 unittest) | ○ |
| C-075 | isInComment異常系: null backend | E-05 (complete.d L893-894) | ○ |
| C-076 | snippetToCompletionItem正常系 | E-05 (complete.d L1021-1050) | ○ |
| C-077 | snippetFromCompletionItem正常系 | E-05 (complete.d L1052-1081) | ○ |
| C-078 | convertDCDIdentifiers正常系 | E-05 (complete.d L1099-1343) | ○ |
| C-079 | convertDCDIdentifiers正常系: 重複マージ | E-05 (complete.d L1268-1343) | ○ |
| C-080 | convertDCDIdentifiers正常系: スニペット生成 | E-05 (complete.d L1230-1246) | ○ |
| C-081 | migrateLabelDetailsSupport正常系 | E-05 (complete.d L1345-1371) | ○ |
| C-082 | restartServer正常系 | E-05 (complete.d L1376-1385) | ○ |
| C-083 | killServer正常系 | E-05 (complete.d L1388-1394) | ○ |
| C-084 | addDependencySnippet正常系 | E-05 (complete.d L1399-1415) | ○ |
| C-085 | addDependencySnippet異常系: コンポーネント不在 | E-05 (complete.d L1402-1403) | ○ |
| C-086 | resolveCompletionItem正常系: スニペット解決 | E-05 (complete.d L940-1019) | ○ |
| C-087 | resolveCompletionItem正常系: auto-import解決 | E-05 (complete.d L975-994) | ○ |
| C-088 | resolveCompletionItem異常系: data None | E-05 (complete.d L1015-1018) | ○ |
| C-089 | provideAutoImports正常系 | E-05 (complete.d L735-839) | ○ |
| C-090 | provideAutoImports正常系: 既存インポート除外 | E-05 (complete.d L762-767) | ○ |
| C-091 | updateDCD正常系: インストール | E-06 (dcd_update.d L82-307) | △ |
| C-092 | updateDCD異常系: フォールバック | E-06 (dcd_update.d L264-268) | △ |
| C-093 | updateDCD正常系: 状態リセット | E-06 (dcd_update.d L85-89) | ○ |
| C-094 | findDeclarationImpl正常系 | E-07 (definition.d L24-89) | ○ |
| C-095 | findDeclarationImpl異常系: DCDがinit | E-07 (definition.d L28-29) | ○ |
| C-096 | findDeclarationImpl正常系: 外部ファイル | E-07 (definition.d L32-38) | ○ |
| C-097 | getDeclarationRange正常系 | E-07 (definition.d L91-97) | ○ |
| C-098 | getDeclarationRange異常系: init返却 | E-07 (definition.d L93-95) | ○ |
| C-099 | provideDefinition正常系 | E-07 (definition.d L99-117) | ○ |
| C-100 | provideDefinition異常系: nullインスタンス | E-07 (definition.d L102-105) | ○ |
| C-101 | provideDefinition異常系: 非D言語 | E-07 (definition.d L107-109) | ○ |
| C-102 | provideHover正常系 | E-07 (definition.d L119-152) | ○ |
| C-103 | provideHover異常系: nullインスタンス | E-07 (definition.d L122-125) | ○ |
| C-104 | listConfigurations正常系 | E-08 (dub.d L25-31) | ○ |
| C-105 | listConfigurations異常系: nullインスタンス | E-08 (dub.d L28-29) | ○ |
| C-106 | switchConfig正常系 | E-08 (dub.d L33-39) | ○ |
| C-107 | switchConfig異常系: DubComponentなし | E-08 (dub.d L36-37) | ○ |
| C-108 | getConfig正常系 | E-08 (dub.d L41-47) | ○ |
| C-109 | listArchTypes正常系: withMeaning=false | E-08 (dub.d L49-74) | ○ |
| C-110 | listArchTypes正常系: withMeaning=true | E-08 (dub.d L59-64) | ○ |
| C-111 | switchArchType正常系 | E-08 (dub.d L76-82) | ○ |
| C-112 | getArchType正常系 | E-08 (dub.d L84-90) | ○ |
| C-113 | listBuildTypes正常系 | E-08 (dub.d L92-98) | ○ |
| C-114 | switchBuildType正常系 | E-08 (dub.d L100-106) | ○ |
| C-115 | getBuildType正常系 | E-08 (dub.d L108-114) | ○ |
| C-116 | getCompiler正常系 | E-08 (dub.d L116-122) | ○ |
| C-117 | switchCompiler正常系 | E-08 (dub.d L124-130) | ○ |
| C-118 | getActiveDubConfig正常系 | E-08 (dub.d L166-202) | ○ |
| C-119 | getActiveDubConfig異常系: nullインスタンス | E-08 (dub.d L169-170) | ○ |
| C-120 | addImport正常系 | E-08 (dub.d L204-209) | ○ |
| C-121 | updateImports正常系 | E-08 (dub.d L212-232) | ○ |
| C-122 | updateImports異常系: DubComponentなし | E-08 (dub.d L220-225) | ○ |
| C-123 | listDependencies正常系: ルート | E-08 (dub.d L327-382) | ○ |
| C-124 | listDependencies正常系: パッケージ | E-08 (dub.d L360-380) | ○ |
| C-125 | listDependencies異常系: DubComponentなし | E-08 (dub.d L332-333) | ○ |
| C-126 | fixEmptyArgs正常系 | E-08 (dub.d L384-387) | ○ |
| C-127 | fixEmptyArgs境界値: 全有効 | E-08 (dub.d L384-387) | ○ |
| C-128 | fixEmptyArgs境界値: 空配列 | E-08 (dub.d L384-387) | ○ |
| C-129 | provideBuildTasks正常系 | E-08 (dub.d L390-509) | ○ |
| C-130 | provideBuildTasks正常系: 非ビルド対象スキップ | E-08 (dub.d L402-405) | ○ |
| C-131 | injectDependency正常系: SDL | E-08 (dub.d L623-649) | ○ |
| C-132 | injectDependency正常系: JSON | E-08 (dub.d L651-724) | ○ |
| C-133 | injectDependency境界値: dependenciesなし | E-08 (dub.d L697-723) | ○ |
| C-134 | changeDependency正常系: SDL | E-08 (dub.d L727-760) | ○ |
| C-135 | changeDependency正常系: JSON | E-08 (dub.d L761-776) | ○ |
| C-136 | changeDependency異常系: 存在しない依存関係 | E-08 (dub.d L745-746) | ○ |
| C-137 | removeDependency正常系: SDL | E-08 (dub.d L778-799) | ○ |
| C-138 | removeDependency正常系: JSON | E-08 (dub.d L800-822) | ○ |
| C-139 | removeDependency異常系: 存在しない依存関係 | E-08 (dub.d L796-797) | ○ |
| C-140 | removeDependency異常系: ファイル不在 | E-08 (dub.d L802-805) | ○ |
| C-141 | convertDubFormat正常系 | E-08 (dub.d L513-572) | △ |
| C-142 | convertDubFormat異常系: ファイル不在 | E-08 (dub.d L519-522) | ○ |
| C-143 | convertDubFormat異常系: 非レシピファイル | E-08 (dub.d L525-529) | ○ |
| C-144 | searchFile正常系 | E-09 (file_search.d L18-72) | ○ |
| C-145 | searchFile境界値: 空クエリ | E-09 (file_search.d L21-22) | ○ |
| C-146 | searchFile正常系: 絶対パス | E-09 (file_search.d L24-29) | ○ |
| C-147 | searchFile異常系: 絶対パス不在 | E-09 (file_search.d L26-29) | ○ |
| C-148 | findFilesByModule正常系 | E-09 (file_search.d L76-140) | ○ |
| C-149 | findFilesByModule境界値: 空モジュール名 | E-09 (file_search.d L79-80) | ○ |
| C-150 | findFilesByModule正常系: キャッシュ | E-09 (file_search.d L82-83) | ○ |
| C-151 | moduleNameForFile正常系 | E-09 (file_search.d L142-154) | ○ |
| C-152 | moduleNameForFile異常系: フォールバック | E-09 (file_search.d L146-153) | ○ |
| C-153 | provideFoldingRange正常系 | E-10 (folding.d L11-40) | ○ |
| C-154 | provideFoldingRange異常系: DCDExtなし | E-10 (folding.d L17-18) | ○ |
| C-155 | mapFoldingRangeKind正常系: comment | E-10 (folding.d L42-50) | ○ |
| C-156 | mapFoldingRangeKind正常系: imports | E-10 (folding.d L47) | ○ |
| C-157 | mapFoldingRangeKind正常系: region | E-10 (folding.d L48) | ○ |
| C-158 | ResolvedFormattingOptions正常系 | E-11 (format.d L15-31) | ○ |
| C-159 | indentString正常系: スペース | E-11 (format.d L37-54) | ○ |
| C-160 | indentString正常系: タブ | E-11 (format.d L52-53) | ○ |
| C-161 | indentString境界値: 大きなtabSize | E-11 (format.d L46-49) | ○ |
| C-162 | generateDfmtArgs正常系: override有効 | E-11 (format.d L56-99) | ○ |
| C-163 | generateDfmtArgs正常系: override無効 | E-11 (format.d L98) | ○ |
| C-164 | generateDfmtArgs正常系: rulers反映 | E-11 (format.d L62-72) | ○ |
| C-165 | tryFindFormattingSettings正常系: タブ検出 | E-11 (format.d L101-128) | ○ |
| C-166 | tryFindFormattingSettings正常系: スペース検出 | E-11 (format.d L117-121) | ○ |
| C-167 | provideFormatting正常系: D言語 | E-11 (format.d L130-171) | ○ |
| C-168 | provideFormatting正常系: SDL | E-11 (format.d L145-163) | ○ |
| C-169 | provideFormatting異常系: フォーマット無効 | E-11 (format.d L138-139) | ○ |
| C-170 | provideFormatting異常系: 未対応言語 | E-11 (format.d L165-168) | ○ |
| C-171 | diff正常系 (unittest) | E-11 (format.d L287-444 unittest) | ○ |
| C-172 | diff境界値: 空→非空 (unittest) | E-11 (format.d L345-347 unittest) | ○ |
| C-173 | diff境界値: 非空→空 (unittest) | E-11 (format.d L348-350 unittest) | ○ |
| C-174 | diff正常系: UTF-32 (unittest) | E-11 (format.d L315 unittest) | ○ |
| C-175 | provideRangeFormatting正常系 | E-11 (format.d L183-194) | ○ |
| C-176 | formatCode正常系 | E-11 (format.d L173-176) | ○ |
| C-177 | formatSnippet正常系 | E-11 (format.d L178-181) | ○ |
| C-178 | provideDocumentHighlight正常系: DCD有効 | E-12 (highlight.d L11-24) | ○ |
| C-179 | provideDocumentHighlight正常系: フォールバック | E-12 (highlight.d L20-21) | ○ |
| C-180 | documentHighlightImpl正常系: writeハイライト | E-12 (highlight.d L26-58, L41-46) | ○ |
| C-181 | documentHighlightImpl正常系: readハイライト | E-12 (highlight.d L49-55) | ○ |
| C-182 | documentHighlightImpl異常系: DCDなし | E-12 (highlight.d L31-32) | ○ |
| C-183 | fallbackDocumentHighlight正常系 | E-12 (highlight.d L60-80) | ○ |
| C-184 | fallbackDocumentHighlight異常系: DCDExtなし | E-12 (highlight.d L63-64) | ○ |
| C-185 | backgroundIndex正常系 | E-13 (index.d L16-21) | △ |
| C-186 | reindexAll正常系 | E-13 (index.d L23-69) | ○ |
| C-187 | reindexAll正常系: enableIndex=falseスキップ | E-13 (index.d L28-29) | ○ |
| C-188 | reindexOnChange正常系 | E-13 (index.d L72-94) | ○ |
| C-189 | reindexOnChange異常系: 非D言語 | E-13 (index.d L76-77) | ○ |
| C-190 | reindexOnChange正常系: 大ファイル遅延 | E-13 (index.d L81) | ○ |
| C-191 | reindexOnSave正常系 | E-13 (index.d L96-114) | ○ |
| C-192 | provideInlayHints正常系 | E-14 (inlay_hints.d L9-45) | ○ |
| C-193 | provideInlayHints異常系: nullインスタンス | E-14 (inlay_hints.d L12-15) | ○ |
| C-194 | provideInlayHints異常系: 非D言語 | E-14 (inlay_hints.d L18-19) | ○ |
| C-195 | provideInlayHints正常系: kind変換 | E-14 (inlay_hints.d L33-36) | ○ |
| C-196 | findReferences正常系 | E-15 (references.d L13-55) | ○ |
| C-197 | findReferences異常系: DCDなし | E-15 (references.d L22-26) | ○ |
| C-198 | findReferences正常系: 宣言除外 | E-15 (references.d L28, L41) | ○ |
| C-199 | AsyncReceiver this正常系 | E-15 (references.d L73-76) | ○ |
| C-200 | AsyncReceiver put正常系 | E-15 (references.d L115-125) | ○ |
| C-201 | AsyncReceiver put境界値: 空データ | E-15 (references.d L117-118) | ○ |
| C-202 | AsyncReceiver empty正常系: ended+空 | E-15 (references.d L108-113) | ○ |
| C-203 | AsyncReceiver empty正常系: 実行中 | E-15 (references.d L112) | ○ |
| C-204 | AsyncReceiver empty異常系: エラー伝播 | E-15 (references.d L110-111) | ○ |
| C-205 | AsyncReceiver end正常系 | E-15 (references.d L133-140) | ○ |
| C-206 | provideRename正常系 | E-16 (rename.d L12-32) | ○ |
| C-207 | provideRename異常系: ハイライトなし | E-16 (rename.d L19, L31) | ○ |
| C-208 | provideRename正常系: writeハイライト必須 | E-16 (rename.d L19) | ○ |
| C-209 | prepareRename正常系 | E-16 (rename.d L34-45) | ○ |
| C-210 | prepareRename異常系: リネーム不可 | E-16 (rename.d L41, L44) | ○ |
| C-211 | provideWorkspaceSymbols正常系 | E-17 (symbol_search.d L21-49) | ○ |
| C-212 | provideDocumentSymbols正常系: 階層 | E-17 (symbol_search.d L51-61, L54-58) | ○ |
| C-213 | provideDocumentSymbols正常系: フラット | E-17 (symbol_search.d L59-60) | ○ |
| C-214 | provideDocumentSymbolsOld正常系 | E-17 (symbol_search.d L70-106) | ○ |
| C-215 | provideDocumentSymbolsOld異常系: DscannerComponentなし | E-17 (symbol_search.d L72-73) | ○ |
| C-216 | provideDocumentSymbolsOld異常系: 非D言語 | E-17 (symbol_search.d L79-80) | ○ |
| C-217 | makeSymbolInfoEx正常系 | E-17 (symbol_search.d L108-128) | ○ |
| C-218 | makeSymbolInfoEx正常系: deprecatedタグ | E-17 (symbol_search.d L121-122) | ○ |
| C-219 | provideDocumentSymbolsHierarchical正常系 | E-17 (symbol_search.d L139-178) | ○ |
| C-220 | onPreviewProjectForUnittest正常系 | E-18 (test_provider.d L22-32) | △ |
| C-221 | onPreviewProjectForUnittest異常系: doTrackTests=false | E-18 (test_provider.d L25-26) | ○ |
| C-222 | onDidAddProjectForUnittest正常系 | E-18 (test_provider.d L34-46) | ○ |
| C-223 | onDidSaveCheckForUnittest正常系 | E-18 (test_provider.d L48-69) | ○ |
| C-224 | onDidSaveCheckForUnittest異常系: 非Dファイル | E-18 (test_provider.d L53-55) | ○ |
| C-225 | rescanTests正常系: 指定URI | E-18 (test_provider.d L71-92) | ○ |
| C-226 | rescanTests正常系: 全スキャン | E-18 (test_provider.d L76-77) | ○ |
| C-227 | rescanFile正常系 | E-18 (test_provider.d L94-135) | ○ |
| C-228 | rescanFile正常系: テスト0件除去 | E-18 (test_provider.d L124-125) | ○ |
| C-229 | rescanProject正常系 | E-18 (test_provider.d L137-194) | ○ |
| C-230 | rescanProject異常系: FileException耐性 | E-18 (test_provider.d L166-169) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-037 (getImportCompilationTime キャッシュ)**: 時間ベースのキャッシュ有効期限ロジック（2分/5分/20分）はリアルタイム依存で単体テスト困難。モック時計の導入が必要。
  - 候補：Clockモックまたはtestableなキャッシュ抽象化
- **C-091/C-092 (updateDCD)**: ネットワークダウンロード、ファイルシステム操作、外部プロセス実行（tar, dub）を多数含むため、単体テストというよりは結合テストに適する。
  - 候補：HTTP通信モック / ファイルシステムモック / プロセス実行モック
- **C-141 (convertDubFormat)**: `dub convert`外部プロセス呼び出しへの依存。
  - 候補：プロセス実行結果のモック
- **C-185 (backgroundIndex)**: setImmediateによる非同期ディスパッチの検証は結合テスト寄り。
  - 候補：setImmediateのモックまたは同期的テスト
- **C-220 (onPreviewProjectForUnittest)**: __gsharedグローバル変数`doTrackTests`と`projectTests`への依存。テスト前後の状態管理が必要。
  - 候補：グローバル状態のリセットヘルパー

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: C-045〜C-063 (型変換関数群) - 単純なswitch文マッピングで根拠が明確
- **0 (低リスク)**: C-155〜C-157 (mapFoldingRangeKind) - final switchで全ケース網羅
- **1 (中リスク)**: C-013〜C-030 (code_actions) - 複雑な条件分岐を含み、外部コンポーネント依存が多い
- **1 (中リスク)**: C-131〜C-140 (injectDependency/changeDependency/removeDependency) - ファイルI/O操作を含む
- **2 (高リスク)**: C-091〜C-092 (updateDCD) - 外部ネットワーク・プロセス依存が極めて多い
- **1 (中リスク)**: C-037 (getImportCompilationTime) - 時間ベースキャッシュと外部コンパイラ依存

## 6) レビュアーチェックリスト（最小）
- [ ] 各LSPプロトコルメソッド（@protocolMethod）に対して正常系・異常系が網羅されているか
- [ ] null/initガード処理（インスタンス不在、コンポーネント不在）が漏れなくテストされているか
- [ ] 言語ID分岐（D, diet, dml, sdl, dscanner.ini）の各分岐がカバーされているか
- [ ] 既存unittest（complete.d isInComment, format.d diff）との整合性が取れているか
- [ ] DUB依存関係操作（inject/change/remove）でSDL/JSON両形式がテストされているか
- [ ] AsyncReceiverクラスの状態遷移（初期化→put→end→empty）が網羅されているか
- [ ] updateDCD関連テスト（C-091, C-092）は結合テストとして分離すべきか検討
