Verify Consolidated Error Messages
Verify every compiler message in a consolidated diagnostic article against Roslyn source, fix all mismatches, and report the results.
Required Input
Collect the destination filename for the consolidated .md file in docs/csharp/language-reference/compiler-messages/.
Key Paths
- Destination:
docs/csharp/language-reference/compiler-messages/{destination-filename} - Roslyn error codes:
../roslyn/src/Compilers/CSharp/Portable/Errors/ErrorCode.cs - Roslyn resources:
../roslyn/src/Compilers/CSharp/Portable/CSharpResources.resx
Step 1: Extract All Error Codes
Read the destination and collect every code referenced in:
- The master error list after the H1.
- Error lists within thematic H2 sections.
Step 2: Look Up Roslyn Messages
For each code:
Extract the numeric portion, such as
CS0220to220.Find the constant assigned that number in
ErrorCode.cs, for example:ERR_CheckedOverflow = 220,Find the
<data>element inCSharpResources.resxwhosenameexactly matches the constant:<data name="ERR_CheckedOverflow" xml:space="preserve"> <value>The operation overflows at compile time in checked mode</value> </data>Extract the
<value>text as the verbatim compiler message.
Messages can contain placeholders such as '{0}', '{1}', {0}, or {1}. Documentation normally replaces them with descriptive terms. Treat those substitutions as matches and compare the static text.
Step 3: Compare Every Instance
Compare the Roslyn message with every documented instance for that code, including the master list and all thematic section lists.
Report mismatches in this form:
| Error Code | Location | Current Text | Roslyn Source Text |
|------------|----------|--------------|--------------------|
| CS0220 | Master list | The operation overflows at compile time | The operation overflows at compile time in checked mode |
| CS0220 | Overflow section | The operation overflows at compile time | The operation overflows at compile time in checked mode |
If none differ, report: All error messages match the Roslyn source.
Step 4: Fix All Mismatches
For every mismatch:
- Update the destination to match Roslyn's static message text.
- Apply the correction everywhere the message appears, including the master list, thematic lists, and inline body references.
- Preserve the destination's current descriptive placeholder substitutions; change only mismatched static text.
Step 5: Verify See Also Links
If the article has a See also section, verify that every relative link resolves to an existing, reachable target in the current repository branch. Report and fix broken relative links.
Step 6: Present Results
Present:
- The total number of codes verified.
- The number of mismatches found and fixed.
- Every correction, with before and after text.
- The result of the
See alsorelative-link check.