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

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

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `src/Compiler/SyntaxTree/SyntaxTree.fsi` - 構文木の型定義とシグネチャ
- E-02: `src/Compiler/SyntaxTree/SyntaxTree.fs` - 構文木の実装
- E-03: `src/Compiler/SyntaxTree/SyntaxTreeOps.fsi` - 構文木操作のシグネチャ
- E-04: `src/Compiler/SyntaxTree/SyntaxTreeOps.fs` - 構文木操作の実装
- E-05: `src/Compiler/SyntaxTree/PrettyNaming.fsi` - 命名規則のシグネチャ
- E-06: `src/Compiler/SyntaxTree/PrettyNaming.fs` - 命名規則の実装
- E-07: `src/Compiler/SyntaxTree/LexHelpers.fsi` - レクサーヘルパーのシグネチャ
- E-08: `src/Compiler/SyntaxTree/LexHelpers.fs` - レクサーヘルパーの実装
- E-09: `src/Compiler/SyntaxTree/LexFilter.fsi` - レクサーフィルターのシグネチャ
- E-10: `src/Compiler/SyntaxTree/LexFilter.fs` - レクサーフィルターの実装
- E-11: `src/Compiler/SyntaxTree/ParseHelpers.fsi` - パーサーヘルパーのシグネチャ
- E-12: `src/Compiler/SyntaxTree/ParseHelpers.fs` - パーサーヘルパーの実装
- E-13: `src/Compiler/SyntaxTree/UnicodeLexing.fsi` - Unicodeレクシングのシグネチャ
- E-14: `src/Compiler/SyntaxTree/UnicodeLexing.fs` - Unicodeレクシングの実装
- E-15: `src/Compiler/SyntaxTree/XmlDoc.fsi` - XMLドキュメントのシグネチャ
- E-16: `src/Compiler/SyntaxTree/XmlDoc.fs` - XMLドキュメントの実装
- E-17: `src/Compiler/SyntaxTree/LexerStore.fsi` - レクサーストアのシグネチャ
- E-18: `src/Compiler/SyntaxTree/LexerStore.fs` - レクサーストアの実装
- E-19: `src/Compiler/SyntaxTree/WarnScopes.fsi` - 警告スコープのシグネチャ
- E-20: `src/Compiler/SyntaxTree/WarnScopes.fs` - 警告スコープの実装
- E-21: `src/Compiler/SyntaxTree/SyntaxTrivia.fsi` - 構文トリビアのシグネチャ
- E-22: `src/Compiler/SyntaxTree/SyntaxTrivia.fs` - 構文トリビアの実装

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

### SyntaxTree.fs/fsi 関連（C-01 〜 C-57）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Ident構造体のコンストラクタテスト | E-01, E-02 | ○ |
| C-02 | Ident.idTextプロパティテスト | E-01, E-02 | ○ |
| C-03 | Ident.idRangeプロパティテスト | E-01, E-02 | ○ |
| C-04 | Ident.MakeSyntheticメソッドテスト | E-01, E-02 | ○ |
| C-05 | SynIdent.Rangeプロパティテスト | E-01 | ○ |
| C-06 | SynLongIdent.Rangeプロパティテスト | E-01 | ○ |
| C-07 | SynLongIdent.LongIdentプロパティテスト | E-01 | ○ |
| C-08 | SynLongIdent.Dotsプロパティテスト | E-01 | ○ |
| C-09 | SynLongIdent.ThereIsAnExtraDotAtTheEndテスト（true） | E-01 | ○ |
| C-10 | SynLongIdent.ThereIsAnExtraDotAtTheEndテスト（false） | E-01 | ○ |
| C-11 | SynLongIdent.RangeWithoutAnyExtraDotテスト | E-01 | ○ |
| C-12 | SynLongIdent.IdentsWithTriviaテスト | E-01 | ○ |
| C-13 | SynTypar.Rangeプロパティテスト | E-01 | ○ |
| C-14 | SynConst.Rangeプロパティテスト（String） | E-01 | ○ |
| C-15 | SynConst.Rangeプロパティテスト（デフォルト） | E-01 | ○ |
| C-16 | SynMeasure.Rangeプロパティテスト | E-01 | ○ |
| C-17 | SynAccess.Rangeプロパティテスト | E-01 | ○ |
| C-18 | DebugPointAtBinding.Combineメソッドテスト | E-01 | ○ |
| C-19 | SynTyparDecls.TyparDeclsプロパティテスト | E-01 | ○ |
| C-20 | SynTyparDecls.Constraintsプロパティテスト | E-01 | ○ |
| C-21 | SynType.Rangeプロパティテスト | E-01 | ○ |
| C-22 | SynTypeConstraint.Rangeプロパティテスト | E-01 | ○ |
| C-23 | SynLetOrUse.IsUseプロパティテスト | E-01 | ○ |
| C-24 | SynLetOrUse.IsBangプロパティテスト | E-01 | ○ |
| C-25 | SynExpr.Rangeプロパティテスト | E-01 | ○ |
| C-26 | SynExpr.RangeOfFirstPortionプロパティテスト | E-01 | ○ |
| C-27 | SynExpr.IsArbExprAndThusAlreadyReportedErrorテスト | E-01 | ○ |
| C-28 | SynSimplePat.Rangeプロパティテスト | E-01 | ○ |
| C-29 | SynSimplePats.Rangeプロパティテスト | E-01 | ○ |
| C-30 | SynArgPats.Patternsプロパティテスト | E-01 | ○ |
| C-31 | SynPat.Rangeプロパティテスト | E-01 | ○ |
| C-32 | SynMatchClause.RangeOfGuardAndRhsプロパティテスト | E-01 | ○ |
| C-33 | SynMatchClause.IsTrueMatchClauseプロパティテスト | E-01 | ○ |
| C-34 | SynBinding.RangeOfBindingWithoutRhsプロパティテスト | E-01 | ○ |
| C-35 | SynBinding.RangeOfBindingWithRhsプロパティテスト | E-01 | ○ |
| C-36 | SynBinding.RangeOfHeadPatternプロパティテスト | E-01 | ○ |
| C-37 | SynValData.SynValInfoプロパティテスト | E-01 | ○ |
| C-38 | SynValInfo.CurriedArgInfosプロパティテスト | E-01 | ○ |
| C-39 | SynValInfo.ArgNamesプロパティテスト | E-01 | ○ |
| C-40 | SynValSig.RangeOfIdプロパティテスト | E-01 | ○ |
| C-41 | SynMemberSig.Rangeプロパティテスト | E-01 | ○ |
| C-42 | SynTypeDefnSimpleRepr.Rangeプロパティテスト | E-01 | ○ |
| C-43 | SynTypeDefnSigRepr.Rangeプロパティテスト | E-01 | ○ |
| C-44 | SynTypeDefn.Rangeプロパティテスト | E-01 | ○ |
| C-45 | SynMemberDefn.Rangeプロパティテスト | E-01 | ○ |
| C-46 | SynModuleDecl.Rangeプロパティテスト | E-01 | ○ |
| C-47 | SynOpenDeclTarget.Rangeプロパティテスト | E-01 | ○ |
| C-48 | SynModuleSigDecl.Rangeプロパティテスト | E-01 | ○ |
| C-49 | SynModuleOrNamespaceKind.IsModuleプロパティテスト | E-01 | ○ |
| C-50 | SynModuleOrNamespace.Rangeプロパティテスト | E-01 | ○ |
| C-51 | ParsedHashDirectiveArgument.Rangeプロパティテスト | E-01 | ○ |
| C-52 | QualifiedNameOfFile.Textプロパティテスト | E-01 | ○ |
| C-53 | QualifiedNameOfFile.Idプロパティテスト | E-01 | ○ |
| C-54 | ParsedImplFileInput.FileNameプロパティテスト | E-01 | ○ |
| C-55 | ParsedImplFileInput.IsScriptプロパティテスト | E-01 | ○ |
| C-56 | ParsedInput.FileNameプロパティテスト | E-01 | ○ |
| C-57 | ParsedInput.Rangeプロパティテスト | E-01 | ○ |

### SyntaxTreeOps.fs/fsi 関連（C-58 〜 C-105）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | SynArgNameGenerator.Newメソッドテスト | E-03, E-04 | ○ |
| C-59 | SynArgNameGenerator.Resetメソッドテスト | E-03, E-04 | ○ |
| C-60 | ident関数テスト | E-03 | ○ |
| C-61 | textOfId関数テスト | E-03 | ○ |
| C-62 | pathOfLid関数テスト（正常系） | E-03 | ○ |
| C-63 | pathOfLid関数テスト（境界値） | E-03 | ○ |
| C-64 | textOfPath関数テスト | E-03 | ○ |
| C-65 | textOfLid関数テスト | E-03 | ○ |
| C-66 | rangeOfLid関数テスト（正常系） | E-03 | ○ |
| C-67 | rangeOfLid関数テスト（境界値） | E-03 | ○ |
| C-68 | mkSynIdGet関数テスト | E-03 | ○ |
| C-69 | mkSynLidGet関数テスト | E-03 | ○ |
| C-70 | mkSynSimplePatVar関数テスト | E-03 | ○ |
| C-71 | mkSynCompGenSimplePatVar関数テスト | E-03 | ○ |
| C-72 | findSynAttribute関数テスト（発見） | E-03 | ○ |
| C-73 | findSynAttribute関数テスト（未発見） | E-03 | ○ |
| C-74 | LongOrSingleIdentアクティブパターンテスト | E-03 | ○ |
| C-75 | SingleIdentアクティブパターンテスト | E-03 | ○ |
| C-76 | IsControlFlowExpression関数テスト（true） | E-03 | ○ |
| C-77 | IsControlFlowExpression関数テスト（false） | E-03 | ○ |
| C-78 | IsDebugPointBinding関数テスト | E-03 | ○ |
| C-79 | mkSynAnonField関数テスト | E-03 | ○ |
| C-80 | mkSynNamedField関数テスト | E-03 | ○ |
| C-81 | mkSynPatVar関数テスト | E-03 | ○ |
| C-82 | mkSynUnit関数テスト | E-03 | ○ |
| C-83 | mkSynUnitPat関数テスト | E-03 | ○ |
| C-84 | mkSynOperator関数テスト | E-03 | ○ |
| C-85 | mkSynInfix関数テスト | E-03 | ○ |
| C-86 | mkSynPrefix関数テスト | E-03 | ○ |
| C-87 | mkSynApp1関数テスト | E-03 | ○ |
| C-88 | mkSynDelay関数テスト | E-03 | ○ |
| C-89 | mkSynAssign関数テスト | E-03 | ○ |
| C-90 | mkSynDot関数テスト | E-03 | ○ |
| C-91 | SimplePatOfPat関数テスト | E-03 | ○ |
| C-92 | SimplePatsOfPat関数テスト | E-03 | ○ |
| C-93 | synExprContainsError関数テスト（true） | E-03 | ○ |
| C-94 | synExprContainsError関数テスト（false） | E-03 | ○ |
| C-95 | SynInfo.HasNoArgs関数テスト | E-03 | ○ |
| C-96 | SynInfo.IsOptionalArg関数テスト | E-03 | ○ |
| C-97 | SynInfo.HasOptionalArgs関数テスト | E-03 | ○ |
| C-98 | SynInfo.InferSynArgInfoFromSimplePat関数テスト | E-03 | ○ |
| C-99 | SynInfo.InferSynValData関数テスト | E-03 | ○ |
| C-100 | NonVirtualMemberFlags関数テスト | E-03 | ○ |
| C-101 | OverrideMemberFlags関数テスト | E-03 | ○ |
| C-102 | AbstractMemberFlags関数テスト | E-03 | ○ |
| C-103 | SynAndAlsoアクティブパターンテスト | E-03 | ○ |
| C-104 | SynOrElseアクティブパターンテスト | E-03 | ○ |
| C-105 | SynPipeRightアクティブパターンテスト | E-03 | ○ |

### PrettyNaming.fs/fsi 関連（C-106 〜 C-131）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-106 | IsOperatorDisplayName関数テスト（true） | E-05, E-06 | ○ |
| C-107 | IsOperatorDisplayName関数テスト（false） | E-05, E-06 | ○ |
| C-108 | IsIdentifierName関数テスト（true） | E-05 | ○ |
| C-109 | IsIdentifierName関数テスト（演算子） | E-05 | ○ |
| C-110 | IsIdentifierName関数テスト（キーワード） | E-05 | ○ |
| C-111 | IsActivePatternName関数テスト（完全） | E-05 | ○ |
| C-112 | IsActivePatternName関数テスト（部分） | E-05 | ○ |
| C-113 | IsActivePatternName関数テスト（無効） | E-05 | ○ |
| C-114 | DoesIdentifierNeedBackticks関数テスト（true） | E-05 | ○ |
| C-115 | DoesIdentifierNeedBackticks関数テスト（false） | E-05 | ○ |
| C-116 | NormalizeIdentifierBackticks関数テスト（追加） | E-05 | ○ |
| C-117 | NormalizeIdentifierBackticks関数テスト（除去） | E-05 | ○ |
| C-118 | IsLogicalOpName関数テスト（true） | E-05 | ○ |
| C-119 | IsLogicalOpName関数テスト（false） | E-05 | ○ |
| C-120 | CompileOpName関数テスト | E-05 | ○ |
| C-121 | ConvertValLogicalNameToDisplayNameCore関数テスト | E-05 | ○ |
| C-122 | IsIdentifierFirstCharacter関数テスト（true） | E-05 | ○ |
| C-123 | IsIdentifierFirstCharacter関数テスト（false） | E-05 | ○ |
| C-124 | IsIdentifierPartCharacter関数テスト | E-05 | ○ |
| C-125 | IsLogicalPrefixOperator関数テスト | E-05 | ○ |
| C-126 | IsLogicalInfixOpName関数テスト | E-05 | ○ |
| C-127 | IsCompilerGeneratedName関数テスト | E-05 | ○ |
| C-128 | TryChopPropertyName関数テスト（get_） | E-05 | ○ |
| C-129 | TryChopPropertyName関数テスト（set_） | E-05 | ○ |
| C-130 | TryChopPropertyName関数テスト（なし） | E-05 | ○ |
| C-131 | GetLongNameFromString関数テスト | E-05 | ○ |

### LexHelpers.fs/fsi 関連（C-132 〜 C-144）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-132 | LexResourceManagerコンストラクタテスト | E-07 | ○ |
| C-133 | mkLexargs関数テスト | E-07 | ○ |
| C-134 | resetLexbufPos関数テスト | E-07 | ○ |
| C-135 | LexerStringFinisher.Finishメソッドテスト | E-07 | ○ |
| C-136 | addUnicodeString関数テスト | E-07 | ○ |
| C-137 | addUnicodeChar関数テスト | E-07 | ○ |
| C-138 | stringBufferAsString関数テスト | E-07 | ○ |
| C-139 | trigraph関数テスト | E-07 | ○ |
| C-140 | hexdigit関数テスト | E-07 | ○ |
| C-141 | unicodeGraphShort関数テスト | E-07 | ○ |
| C-142 | escape関数テスト | E-07 | ○ |
| C-143 | Keywords.KeywordOrIdentifierTokenテスト（キーワード） | E-07 | ○ |
| C-144 | Keywords.KeywordOrIdentifierTokenテスト（識別子） | E-07 | ○ |

### LexFilter.fs/fsi 関連（C-145 〜 C-148）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-145 | LexFilterコンストラクタテスト | E-09 | ○ |
| C-146 | LexFilter.GetTokenメソッドテスト | E-09 | ○ |
| C-147 | LexFilter.LexBufferプロパティテスト | E-09 | ○ |
| C-148 | TyparsCloseOpアクティブパターンテスト | E-09 | ○ |

### ParseHelpers.fs/fsi 関連（C-149 〜 C-162）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-149 | SyntaxError例外テスト | E-11 | ○ |
| C-150 | posOfLexPosition関数テスト | E-11 | ○ |
| C-151 | mkSynRange関数テスト | E-11 | ○ |
| C-152 | lhs関数テスト | E-11 | ○ |
| C-153 | rhs関数テスト | E-11 | ○ |
| C-154 | grabXmlDoc関数テスト | E-11 | ○ |
| C-155 | reportParseErrorAt関数テスト | E-11 | ○ |
| C-156 | exprFromParseError関数テスト | E-11 | ○ |
| C-157 | patFromParseError関数テスト | E-11 | ○ |
| C-158 | mkSynTypeTuple関数テスト | E-11 | ○ |
| C-159 | adjustHatPrefixToTyparLookup関数テスト | E-11 | ○ |
| C-160 | LexerContinuation.Defaultプロパティテスト | E-11 | ○ |
| C-161 | LexerContinuation.LexerIfdefStackプロパティテスト | E-11 | ○ |
| C-162 | checkEndOfFileError関数テスト | E-11 | ○ |

### UnicodeLexing.fs/fsi 関連（C-163 〜 C-167）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-163 | StringAsLexbuf関数テスト | E-13 | ○ |
| C-164 | SourceTextAsLexbuf関数テスト | E-13 | ○ |
| C-165 | StreamReaderAsLexbuf関数テスト | E-13 | ○ |
| C-166 | LexBuffer.GetLocalDataメソッドテスト | E-13 | ○ |
| C-167 | LexBuffer.TryGetLocalDataメソッドテスト | E-13 | ○ |

### XmlDoc.fs/fsi 関連（C-168 〜 C-178）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-168 | XmlDocコンストラクタテスト | E-15 | ○ |
| C-169 | XmlDoc.GetElaboratedXmlLinesメソッドテスト | E-15 | ○ |
| C-170 | XmlDoc.GetXmlTextメソッドテスト | E-15 | ○ |
| C-171 | XmlDoc.IsEmptyプロパティテスト | E-15 | ○ |
| C-172 | XmlDoc.Merge静的メソッドテスト | E-15 | ○ |
| C-173 | XmlDocCollector.AddXmlDocLineメソッドテスト | E-15 | ○ |
| C-174 | XmlDocCollector.AddGrabPointメソッドテスト | E-15 | ○ |
| C-175 | XmlDocCollector.LinesBeforeメソッドテスト | E-15 | ○ |
| C-176 | PreXmlDoc.ToXmlDocメソッドテスト | E-15 | ○ |
| C-177 | PreXmlDoc.IsEmptyプロパティテスト | E-15 | ○ |
| C-178 | PreXmlDoc.Merge静的メソッドテスト | E-15 | ○ |

### LexerStore.fs/fsi 関連（C-179 〜 C-186）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-179 | XmlDocStore.SaveXmlDocLineメソッドテスト | E-17 | ○ |
| C-180 | XmlDocStore.GrabXmlDocBeforeMarkerメソッドテスト | E-17 | ○ |
| C-181 | IfdefStore.SaveIfHashメソッドテスト | E-17 | ○ |
| C-182 | IfdefStore.GetTriviaメソッドテスト | E-17 | ○ |
| C-183 | CommentStore.SaveSingleLineCommentメソッドテスト | E-17 | ○ |
| C-184 | CommentStore.SaveBlockCommentメソッドテスト | E-17 | ○ |
| C-185 | CommentStore.GetCommentsメソッドテスト | E-17 | ○ |
| C-186 | LexerIfdefEval関数テスト | E-17 | ○ |

### WarnScopes.fs/fsi 関連（C-187 〜 C-190）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-187 | WarnScopes.ParseAndRegisterWarnDirectiveメソッドテスト | E-19 | ○ |
| C-188 | WarnScopes.MergeIntoメソッドテスト | E-19 | ○ |
| C-189 | WarnScopes.IsNowarn関数テスト | E-19 | ○ |
| C-190 | WarnScopes.IsWarnon関数テスト | E-19 | ○ |

### SyntaxTrivia.fs/fsi 関連（C-191 〜 C-200）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-191 | SynExprLambdaTrivia.Zero静的プロパティテスト | E-21 | ○ |
| C-192 | SynLetOrUseTrivia.Zero静的プロパティテスト | E-21 | ○ |
| C-193 | SynMatchClauseTrivia.Zero静的プロパティテスト | E-21 | ○ |
| C-194 | SynTypeDefnTrivia.Zero静的プロパティテスト | E-21 | ○ |
| C-195 | SynBindingTrivia.Zero静的プロパティテスト | E-21 | ○ |
| C-196 | SynLeadingKeyword.Rangeプロパティテスト | E-21 | ○ |
| C-197 | SynTypeDefnLeadingKeyword.Rangeプロパティテスト | E-21 | ○ |
| C-198 | GetSetKeywords.Rangeプロパティテスト | E-21 | ○ |
| C-199 | ParsedInputTrivia.Empty静的プロパティテスト | E-21 | ○ |
| C-200 | desugarGetSetMembers関数テスト | E-03 | ○ |

## 4) 不足情報（Unknown / Missing）
- 根拠なしの主張はありません。すべてのテストケースはソースコードのシグネチャファイル（.fsi）または実装ファイル（.fs）に基づいて作成されています。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - すべてのテストケースが既存のソースコードに基づいています
- 注意点：
  - F#コンパイラの内部実装のため、一部の関数はinternal修飾子が付いています
  - 一部のテストケースは、実際のパーサー/レクサーの動作に依存するため、統合テスト環境が必要な場合があります
  - LexFilter.fsは約146KBの大規模ファイルであり、オフサイドルールの実装を含むため、テストの優先度が高いです

## 6) レビュアーチェックリスト（最小）
- [ ] 各テストケースがソースコードのシグネチャと一致しているか確認
- [ ] 境界値テスト（空リスト、null相当、単一要素）が適切にカバーされているか確認
- [ ] 異常系テスト（エラーリカバリ、不正入力）が適切にカバーされているか確認
- [ ] 高優先度のテストケース（構文木の基本操作、レクシング、パーシング）が十分にカバーされているか確認
- [ ] F#固有の機能（アクティブパターン、型パラメータ、判別共用体）のテストが含まれているか確認
- [ ] コンパイラ内部API（internal修飾子付き）のテスト可能性を確認
