Skip to content

Report missing out-call context as unavailable validity evidence - #9992

Merged
richlander merged 4 commits into
mainfrom
fix/9939-validity-context
Oct 13, 2026
Merged

richlander merged 4 commits into
mainfrom
fix/9939-validity-context

Conversation

@richlander

@richlander richlander commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

Validity assignment-context declines

Change

Conclusion: REVIEW — the checker retains the compiler failure and names
missing assignment context instead of asserting an unassigned-local defect.
This supplies no new compilation context or validity success.

Normative owner:
docs/decompiler-correctness-pipeline.md#harness-artifact-ownership — observe the
unchanged first product projection, disclose unavailable evidence, and retain
independent defects. Supporting: Roslyn symbol identity identifies the actual
local and invocation; the existing validity shell, corpus sensor, Render A/B,
and library report consume the same diagnostic classification. Native RTS is
independent corroboration, not a replacement validity oracle.

The convention is to distinguish an unavailable check from a failed supported
check. Known skipped-call reads remain CS0165 defects, including unresolved calls
under branches, loops, conditional expressions, catch paths, and goto bypasses.
Round 1 found a skipped unresolved-call boundary defect; round 2 adds the
conservative execution guard and twelve regression/control cases.
When the diagnosed local is passed to an unresolved out invocation in the
same executable body, and the call is required on the recognized path to the
read, the checker reports VLD0002. Unrecognized control flow retains CS0165. Its message retains the
raw CS0165 and the unresolved invocation. A bound second out call can inherit
this limitation within an && guard with an unresolved sibling call; that
dependent decline is restricted to reads in the guard's true arm. Reads after
the guard and under || retain their independent skipped-call defect.

Context-only declines have no completed semantic outcome. Independent defects
remain failed outcomes even when the same method also has a decline. Render
A/B prints both; the corpus records semantic-unavailable:VLD0002 for a pure
decline and keeps mixed cases in semantic-defect. The existing semantic
coverage-loss gate still fails when completed checks decrease. Compilation
attempts are reported separately from completed outcomes, and the compilation
cap still limits attempts.

This is one harness-owner slice with immediate adoption by its existing
callers. The product render, native RTS implementation, IL comparator, fidelity
contract, committed baseline, and cutover pins are unchanged. There are no new
dependencies, product APIs, host adoption steps, or performance claims.

Evidence map

Lens Scope Compared Held constant Answers
Validity attribution Forty original full-corpus regression methods Old classifier → candidate classifier on the same frozen After bodies Pinned binaries, product body bytes, signatures, shell contexts, runtime references, compiler options, working directory Are context-limited CS0165 diagnostics reported precisely?
Render attribution Fifty-seven original Render A/B regression methods within 139 saved pairs Old classifier → candidate classifier on the same frozen After bodies Product body bytes and inspected-assembly reference context Are the original reported losses classified without a validity success?
Boundary controls Candidate cases: compiler-bound C# and the observed DisplayName body Supported assignment / skipped calls / unknown calls / independent defects Roslyn and the existing shell API Does the checker preserve real defects and limit declines?
Product output Repository product sources Base → candidate All files under src/ Did this slice change the product render?

Shared judgment

Lens Scope Evidence kind Direction Comparison What decides the judgment
Validity attribution Forty original census losses Evidence coverage Not directional Forty CS0165 defect labels → forty explicit context declines A decline is not a validity improvement; all fifty raw compiler diagnostics remain in messages.
Render attribution Fifty-seven original Render A/B losses Evidence coverage Not directional Fifty-seven defect labels → fifty-seven context declines No row is promoted to valid.
Boundary controls Candidate focused controls Evidence coverage Not directional Different input cases exercise their own expected outcome Independent compiler diagnostics and reporter assertions enforce the boundary; this is not a baseline test-count comparison.
Product output Product source tree Product quality Same Zero changed product source files No output-changing raise, structural delta, or PDB convergence claim is made.

Correctness-fix contract

Obligation Evidence
Real asset dotnet-inspect.any 0.14.0: TypeRef.DisplayName and CSharpPrinter.EnumMemberName; Microsoft.CodeAnalysis.Common 5.0.0: AnalyzerConfig.get_GlobalLevel.
Observed fault The unrelated shell cannot bind the call supplying an out-local assignment. Roslyn can then report a dependent CS0165.
Supported claim The failure is retained as unavailable assignment evidence, not erased or asserted to be a successful bind.
Independent negative Bound skipped calls, unrelated locals, nested executable bodies, ref calls, reads before a later call, and independent defects remain defective.
Dependent boundary The bound-call dependency applies to the same && guard's true arm, including parentheses. || and reads after the guard remain defects when the call can be skipped.
Falsifier A context-only row becomes valid, a known independent defect disappears, or product source is rewritten to create assignment evidence.

Evidence

Measured classification delta

Not directional — evidence coverage. Both columns bind the same frozen
product After bodies; this PR changes diagnostic attribution, not the C#.
Raw receipts: all 40 full method identities and old/head diagnostics.

Observation on the 40 original census losses Old classifier Head classifier
Methods / Full-fidelity admission 40 / all Full 40 / all Full
Rows containing CS0165 defect diagnostics 40 0
Rows containing VLD0002 unavailable diagnostics 0 40
Raw CS0165 messages retained 50 50
Rows with IsValid == true 0 0
Malformed syntax diagnostics 0 0

The 50 messages were compared by method identity and checked for exact retention
after removing only the new diagnostic prefix/context suffix. The frozen
upstream product pairs have 55 = default; removals and zero other edits.
That output change belongs to #9944; this PR changes no product body.

Assembly Rows: CS0165 → unavailable Retained raw diagnostics
DotnetInspector.Services.dll 1 1
ILInspector.Analysis.dll 1 1
ILInspector.Decompiler.dll 14 16
ILInspector.Metadata.dll 5 12
Microsoft.ApplicationInsights.dll 1 2
Microsoft.CodeAnalysis.CSharp.dll 2 2
Microsoft.CodeAnalysis.dll 9 9
Newtonsoft.Json.dll 4 4
NuGet.Versioning.dll 2 2
dotnet-inspect.dll 1 1
Total 40 50

Concrete product artifacts and compiler diagnostics

These are captured product bodies, not reconstructed examples. Each old/head
diagnostic pair binds the same displayed body. IsValid is false under
both classifiers; VLD0002 does not turn a compiler failure into a success.

1. TypeRef.DisplayName — original census population

Asset: nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll.
Captured at product head 8d72a548d; exact opening excerpt.

string keyword;

if (Assembly == "corelib" && Namespace == "System" && global::ILInspector.Decompiler.Pipeline.TypeRef.s_keywords.TryGetValue(Name, out keyword))
{
    return keyword;
}

Actual replay records (same body and lane-specific references):

{
  "oldClassifier": {
    "IsValid": false,
    "malformed": [],
    "diagnostics": [
      {
        "Id": "CS0165",
        "Message": "Use of unassigned local variable 'keyword'"
      }
    ]
  },
  "headClassifier": {
    "IsValid": false,
    "malformed": [],
    "diagnostics": [
      {
        "Id": "VLD0002",
        "Message": "CS0165: Use of unassigned local variable 'keyword'; assignment context unavailable: unresolved out invocation 'global::ILInspector.Decompiler.Pipeline.TypeRef.s_keywords.TryGetValue'"
      }
    ]
  }
}

2. CSharpPrinter.EnumMemberName — dependent bound call, census population

Asset: nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll.
Captured at product head 8d72a548d; complete captured body.

int value;
global::System.Collections.Generic.IReadOnlyDictionary<long, string> members;
string name;

object V_3 = constant.Value;
if (V_3 is int)
{
    value = (int)V_3;
    if (_function.EnumMembers.TryGetValue(constant.Type, out members) && members.TryGetValue((long)value, out name))
    {
        return string.Concat(TypeText(constant.Type), ".", name);
    }
}
return null;

Actual replay records (same body and lane-specific references):

{
  "oldClassifier": {
    "IsValid": false,
    "malformed": [],
    "diagnostics": [
      {
        "Id": "CS0165",
        "Message": "Use of unassigned local variable 'name'"
      }
    ]
  },
  "headClassifier": {
    "IsValid": false,
    "malformed": [],
    "diagnostics": [
      {
        "Id": "VLD0002",
        "Message": "CS0165: Use of unassigned local variable 'name'; assignment context unavailable: unresolved out invocation '_function.EnumMembers.TryGetValue'"
      }
    ]
  }
}

Here members.TryGetValue binds, but its assignment facts depend on the
unresolved _function.EnumMembers.TryGetValue in the same true && arm.
The retained message names that unresolved dependency.

3. AnalyzerConfig.get_GlobalLevel — Render population only

Asset: nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll.
Captured at product head 8d72a548d; complete captured body.

string val;
int level;

if (GlobalSection.Properties.TryGetValue("global_level", out val) && int.TryParse(val, out level))
{
    return level;
}
if (_hasGlobalFileName)
{
    return 100;
}
return 0;

Actual replay records (same body and lane-specific references):

{
  "oldClassifier": {
    "IsValid": false,
    "malformed": [],
    "diagnostics": [
      {
        "Id": "CS0165",
        "Message": "Use of unassigned local variable 'level'"
      }
    ]
  },
  "headClassifier": {
    "IsValid": false,
    "malformed": [],
    "diagnostics": [
      {
        "Id": "VLD0002",
        "Message": "CS0165: Use of unassigned local variable 'level'; assignment context unavailable: unresolved out invocation 'GlobalSection.Properties.TryGetValue'"
      }
    ]
  }
}

This row uses Render’s inspected-assembly references; it is not one of the
40 runtime-reference census rows. The bound second call is int.TryParse.

Boundary observations: declines versus genuine defects

Eight freshly observed, explicitly authored controls use the unchanged
EvaluateRenderedBody API. These are control evidence, not product receipts.
Exact control bodies and raw result objects.

Control IsValid SemanticUnavailable HasSemanticDefect Diagnostic IDs
required-and false true false VLD0002
dependent-bound-and false true false VLD0002
skipped-if false false true CS0165
skipped-and-after false false true CS0165
skipped-or-true false false true CS0165
bound-required true false false none
bound-skipped false false true CS0165
mixed false true true VLD0002, CS0165

The round 1 falsifier is the skipped-if control:

int value;
if (System.DateTime.Now.Ticks > 0) Missing.TryRead(out value);
return value;

Actual head result: IsValid=false, SemanticUnavailable=false,
HasSemanticDefect=true, CS0165: Use of unassigned local variable 'value'.
The mixed control retains both VLD0002 and independent CS0165; it stays a
failed outcome. A bound required call succeeds; a bound skipped call fails.

Committed boundary gate,
coverage-loss gate control,
and mixed Render reporting control enforce these outcomes.

Render population accounting

Fixed scope Old classifier Head classifier
57 original admitted Render losses 57 CS0165 defect rows 57 unavailable rows; 0 valid
Broader 141 forced-bind pairs 70 valid / 71 defective 70 valid / 68 unavailable / 3 defective
Validity promotions in broader replay — 0

The three retained defects are DepsJsonParser.Parse (CS0019/VLD0001),
SyntaxStore.Builder.GetSyntaxInputTable (CS8129), and the Partial goto body
SwitchRaisingPass.RaiseSparseIntSwitch (CS0165, conservatively retained).
That Partial row was already outside the 57 admitted losses. These totals do
not establish corpus validity or resolve the 18 unavailable native rows.

The committed corpus remains historical evidence from its recorded checker.
There is no new full baseline loop or claim of exhaustive corpus health.

The forty-method reproduction acquires fully qualified first product projections
at clean d93cb58f8 and clean 8d72a548d, using the same fourteen pinned
assembly paths. Every method remains Full. The two product projections differ
only by fifty-five initializer removals, with zero other body edits. The
side-quest comparison then binds the same frozen After body with each
classifier using the validity lane's runtime-only reference population.

The baseline classifier is the existing clean d93cb58f8 harness build.
Its harness sources are byte-identical to the effective base 6fc3f2042.
This reuse is a source-equivalent diagnostic comparison, not a claim that a new
base build or baseline census ran. Both executions use the same probe, input
bytes, compiler options, working directory, and paths. They import metadata;
they do not load inspected assemblies or repair source.

The Render diagnostic replay uses its distinct inspected-assembly reference
context. Its 139 saved body pairs include the exact 57 originally reported
losses. Two separately acquired CSharp first projections extend the diagnostic
replay to 141 identities. This lower-level replay binds bodies independently of
the normal Full admission gate, so its broader totals are not a corpus validity
claim. The 57 original admitted losses all receive VLD0002. The two unrelated
diagnostics in the broader replay remain unchanged. The conservative guard now
retains CS0165 for a goto-containing partial body outside the original 57
admitted losses; that unrecognized control flow does not justify a decline.
The broader forced replay is 70 valid, 68 unavailable, and 3 defective; none
is promoted to valid.

Input digests:

  • Forty-row validity input: b12826cc3b562ac13afdaac94e35f2bcec1ec9dac4bed30b3f10e560ceed83e1.
  • Extended Render input: 66e72ec7a6847a860fdd7d7bdbbf430819ff06b8fb67272779bafb36f24cbd17.

Corpus validity

Conclusion: ADVISORY — all forty original regression rows now precisely
decline coverage. This is neither a new invalid product body nor a successful
validity check. The existing native attribution remains twenty-two independently
compilable rows and eighteen unavailable rows; this PR establishes no new native
result for either group.

The complete forty-row raw attribution is attached to this PR;
the compact ledger is also posted on #9939. Each row includes its
stable method identity and retained CS0165 plus unresolved-call cause.

Decompiler quality

Conclusion: REVIEW — this diagnostic change preserves failures and the
existing coverage-loss gate. A complete-context validity comparison remains
unavailable for the affected bodies. Product-quality and whole-corpus readiness
are not inferred from a reduction in defect labels.

Output-changing raise sections are inapplicable: this PR changes no emitted C#.
Structural and PDB Source Diff evidence therefore supplies no new directional
claim. The native fidelity contract remains v5 and the compile-back floor is
unchanged.

Validation

Focused checks cover assignment context, the corpus coverage-loss gate, and
mixed-error Render A/B reporting. Existing shell-noise controls and the Render
A/B class pass. The full Release graph passed at 707ee82aa; the final
candidate's Release test graph passed at 3ff30fe9d, both with zero warnings
and errors. At the final candidate source, 35 focused checks and all 7,148 fast tests pass,
with zero skips. The broader shell-noise class passed 43/43 and Render A/B
passed 20/20 before the round 1 reporting refinement and round 2 skipped-call correction. Baseline broad suites
were not rerun; these candidate counts are not a baseline test-count delta.

dotnet build dotnet-inspect.slnx -c Release -m:1
dotnet build tests/ILInspector.Decompiler.Tests -c Release -m:1
source eng/activate-iltools.sh --mdv
dotnet run --project tests/ILInspector.Decompiler.Tests -c Release --no-build -- \
  --filter-method '*AssignmentContext*' \
  --filter-method '*PinnedValidityCoverageChange*' \
  --filter-method '*PinnedValidityLoss*' \
  --filter-method '*UnresolvedOutCallReportsCoverageDecline*' \
  --filter-method '*CappedRunLabelsSemanticFindingsAsPerSample*'
dotnet run --project tests/ILInspector.Decompiler.Tests -c Release --no-build -- \
  --gate fast

Local runs use an isolated temporary directory because /tmp hit its disk
quota. The affected fast run was cancelled; its quota failures are not treated
as product failures or usable validation. The isolated rerun passes.

Fresh evidence-update rerun at the unchanged clean head:

Test run summary: Passed!
  total: 35
  failed: 0
  succeeded: 35
  skipped: 0
  duration: 3s 164ms

Prior final-candidate fast gate (not rerun for a PR-body edit):

Test run summary: Passed!
  total: 7148
  failed: 0
  succeeded: 7148
  skipped: 0
  duration: 1m 29s 311ms

Current-head CI: required gate,
decompiler gates,
and tests.
Round 2 clean review and evidence dispositions.

Generated by Codex.

@richlander

Copy link
Copy Markdown
Owner Author

Round 1 candidate lock

PR #9992, candidate 1, locked head:
9884a6ad00a3e5b8af5c125d630dd4a009897fab.
Effective base: main at 6fc3f2042bc371ed92517dffe9f204ba09233049.
Candidate pushed: 2026-10-13 00:18:20 UTC.

Theme: Resolve RTS-revealed fidelity rows by owner, fixing decompiler raise defects.

The side quest implements #9939's precise coverage-decline route. The complete
forty-row attribution
retains fifty raw CS0165 diagnostics and names the unresolved out calls. No
affected row becomes valid. All fifty-seven original Render A/B regressions
also receive the context decline. Native attribution remains twenty-two
compilable and eighteen unavailable; no new native result is claimed.

Current-head local validation: 23 focused checks and 7,136 fast tests pass,
with zero skips. A fresh local conflict probe is clean; the PR is mergeable.
Current-head CI is running. One GPT-6 Sol adversarial reviewer is planned after
green ci-required, with the complete canonical prompt first, a self-contained
frame, and the decompiler evidence appendix. The review worktree will be read-only.

Waiting: pr:9992.ci-required == success at the locked head.
Goal: review dispatch. Status deadline: 2026-10-13 00:50:00 UTC.
No merge authorization has been given.

Generated by Codex.

@richlander

Copy link
Copy Markdown
Owner Author

Round 1 base movement

At 2026-10-13 00:25:20 UTC, main moved from 6fc3f2042 to
2497031ba1c894063cf4cf4d7b7ad48f1e1e1c16 through #9987's Diff History
presentation lowering. The local conflict probe for locked head
9884a6ad00a3e5b8af5c125d630dd4a009897fab is clean.

Classification: no interaction. The base change touches Diff History's CLI
and Presentation projection, its package-version vector, and related guidance
and tests. It changes no validity, decompiler, CSharp, RTS, corpus, or shared
diagnostic boundary used by this slice. The candidate remains locked; no
integration or new candidate is warranted.

Current-head decompiler gates pass. The test job remains running, and GitHub
mergeability is recalculating. Review dispatch waits for successful
ci-required and positive mergeability. The status deadline remains
2026-10-13 00:50:00 UTC. No merge authorization exists.

Generated by Codex.

@richlander

Copy link
Copy Markdown
Owner Author

PR #9992 round 1 resolution

Reviewed locked head 9884a6ad00a3e5b8af5c125d630dd4a009897fab with one gpt-6-sol adversarial reviewer. Review is usable and found one blocking boundary defect; accepted.

An unresolved out call under a conditional can be skipped before a later read. The classifier currently converts that genuine CS0165 to VLD0002. The reviewer verified both unresolved and bound compiler controls; both report CS0165. The next candidate will conservatively retain genuine skipped-call defects and add regression controls.

The reviewer independently passed 23 focused Release tests and verified artifact provenance: 40 unchanged Full bodies, 55 initializer removals only, 50 retained raw CS0165 messages, zero promoted-valid results. Existing tests missed the unresolved skipped-call boundary. An optional scratch probe hit the shared /tmp quota; this is not product evidence.

CI remains green on the locked head. Fresh local merge probe is clean against main 3a56bd88b88cf9fd8656581b8cc17d36f5fbff3c. Since the prior snapshot, main added classic-async core-field reset realization changes, a product reconstruction path separate from this validity classifier; no interaction with the changed diagnostic classification or its fixtures. The next candidate will retain explicit classification boundaries. GitHub mergeability is temporarily unknown; there are no review threads or external reviews.

Prior obligations remain: complete assignment context is unavailable, including 18 native failures; #9944 whole-corpus readiness remains unproved; the coverage-loss gate remains active. #9935 structural acquisition and #9940/#9504/#9875 stay outside this slice. No repair of product artifacts, comparator change, baseline regeneration, or merge is authorized or performed.

Round 1: start 2026-10-13 00:18:20 UTC; end 2026-10-13 00:38:59 UTC; duration 00:20. One pushed candidate, one usable review, one accepted finding, 0/1 clean reviews. Recommendation: continue with the focused correction in round 2.

Generated by Codex.

@richlander

Copy link
Copy Markdown
Owner Author

Round 2 candidate lock

PR #9992, candidate 2: 3ff30fe9dd81f38aab48f3b52db0558aaa1d9bdd, pushed 2026-10-13 00:48:48 UTC. Comparison base remains 6fc3f2042bc371ed92517dffe9f204ba09233049; effective main 3a56bd88b88cf9fd8656581b8cc17d36f5fbff3c has no interaction as recorded in round 1 reconciliation.

Accepted round 1 finding is corrected: unresolved calls that can be skipped before the read retain CS0165. The classifier requires a recognized execution path; unknown control flow retains the defect. Twelve new controls cover skipped branches, loops, conditional expressions, catch paths and goto bypasses, plus required guard paths.

Final candidate source passed 35 focused Release checks and all 7,148 fast tests, zero skips. Forty frozen census rows remain unavailable with fifty retained raw CS0165 diagnostics, zero valid. All fifty-seven original admitted Render losses remain unavailable; one broader partial goto body now retains its CS0165 defect. No product artifacts are repaired.

CI is pending on the new head. One gpt-6-sol adversarial reviewer will review this locked head after the CI gate. Complete context, eighteen native failures, #9944 whole-corpus readiness, and existing coverage-loss enforcement remain unchanged. No merge authorization.

Generated by Codex.

@richlander

Copy link
Copy Markdown
Owner Author

Round 2 base movement

Locked head remains 3ff30fe9dd81f38aab48f3b52db0558aaa1d9bdd. Fresh main advanced from 3a56bd88b to 8ab566d90 through #9979 (Roslyn foreach child-count expression / struct receiver inlining).

Classification: no interaction. Those product reconstruction changes and their fixtures do not change the validity classifier, its synthetic boundary controls, or the frozen first-projection inputs used for this side-quest attribution. This PR makes no fresh main-render census claim. The local merge probe is clean; no integration or push is needed for this locked diagnostic-only candidate.

At 2026-10-13 00:50:05 UTC, GitHub reports mergeable, no review threads, and no external reviews. Current-head CI is still running. The bounded CI wait expires at 01:18:48 UTC unless it reaches a gate outcome sooner.

Generated by Codex.

@richlander

Copy link
Copy Markdown
Owner Author

Round 2 review dispatched

One gpt-6-sol adversarial reviewer is reviewing locked head 3ff30fe9dd81f38aab48f3b52db0558aaa1d9bdd, in a separate read-only worktree. The complete canonical prompt was inlined verbatim first, followed by the self-contained candidate frame and complete decompiler evidence-integrity appendix. The frame carries the accepted round 1 finding and every unresolved prior obligation.

Fresh 2026-10-13 01:00:25 UTC snapshot: current-head ci-required, tests, decompiler gates, provenance, and changes pass; mergeable is true; local conflict probe is clean against live main 8ab566d908f804b1b00766001033438fc6670402; no external reviews or review threads. The CI wait is complete.

The committed-head Release test graph passed with zero warnings and errors. Final candidate source passed 35 focused checks and all 7,148 fast tests, zero skips. Root will run no builds or tests during the review. No merge authorization or auto-merge.

Generated by Codex.

@richlander

richlander commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner Author

Round 2 reconciliation

One gpt-6-sol adversarial reviewer returned CLEAN for the whole PR diff at locked head 3ff30fe9dd81f38aab48f3b52db0558aaa1d9bdd. No new blocking findings. The accepted round 1 skipped unresolved-call defect is resolved: ordinary skipped paths retain CS0165, while recognized required-call paths decline coverage. The reviewer independently passed all 35 focused Release checks, diff hygiene, and Markdown lint.

Evidence-integrity review confirms that the validity shell compiles the unchanged first fully qualified product body. The classifier observes diagnostics and syntax without repair. Corpus, Render A/B, and LibraryReport retain unavailable and mixed-failure outcomes without promoting source or validity.

Forty frozen Full census pairs contain exactly 55 initializer removals and no other body edits; all 40 candidate results remain VLD0002, retaining 50 raw CS0165 messages, with zero valid. All 57 original admitted Render losses also remain VLD0002. The distinct broader forced replay is 70 valid, 68 unavailable, and 3 defective, with zero validity promotions. A Partial goto body outside the admitted losses conservatively retains its CS0165 defect.

Prior obligations: #9939's precise-decline route is resolved for this slice. Complete compilation context and 18 native failures remain unavailable. #9944's whole-corpus readiness and the existing coverage-loss gate remain unresolved and active. #9935's structural acquisition gap, #9940's truthiness work, and #9504/#9875 are outside this diagnostic slice and are not blockers here; no product raise or structural path changes. Earlier shared /tmp quota failures remain unusable evidence and are superseded by passing isolated runs.

Fresh 2026-10-13 01:05:08 UTC preflight: exact head unchanged; current-head ci-required, tests, decompiler gates, changes, and provenance pass; mergeable true; local conflict probe clean against live main 8ab566d908f804b1b00766001033438fc6670402; no external reviews or review threads; auto-merge absent. The base movement remains classified no interaction as already recorded.

Round report

Round 2 is complete for PR 9992.

  • Theme: Resolve RTS-revealed fidelity rows by owner, fixing decompiler raise defects.
  • Review model gpt-6-sol was used for adversarial review.
  • Design basis: normative owner docs/decompiler-correctness-pipeline.md#harness-artifact-ownership — observe unchanged first product projection, disclose unavailable assignment context, and retain independent defects; supporting tools/DecompilerHarness/ValidityCheck.cs (Roslyn binding and syntax observation), tools/DecompilerHarness/CorpusSensor.cs, RenderAbSensor.cs, and LibraryReport.cs (existing consumers), and tests/ILInspector.Decompiler.Tests/ValidityAssignmentContextTests.cs plus CorpusSensorComparisonTests.cs (boundary and coverage-loss gates).
  • Review feedback is: clean.
  • Round start: 2026-10-13 00:48:48 UTC.
  • Round end: 2026-10-13 01:05:08 UTC.
  • Round duration: 00:16.

Progress: 2 pushed candidates, 2 usable reviews, 1 accepted finding (resolved).
Reviews: 1/1 clean for current head — sole adversarial reviewer CLEAN.
Recommendation: stop (focused side quest implemented and reviewed; PR remains unmerged).

Resolution: precise declines retain raw evidence for the motivating rows, skipped-call defects remain failures, committed-head Release build and 35 focused controls pass, all 7,148 fast tests pass, and CI is green. This supplies no new compilation context or whole-corpus readiness claim. No merge authorization was requested or inferred; no merge occurred.

Generated by Codex.

@richlander richlander added the review-clean PR has met the adversarial review standard per AGENTS.md. label Oct 13, 2026
@richlander

Copy link
Copy Markdown
Owner Author

#9992 evidence receipts

Head: 3ff30fe9dd81f38aab48f3b52db0558aaa1d9bdd.
Comparison base: 6fc3f2042bc371ed92517dffe9f204ba09233049.
Baseline classifier receipt: clean d93cb58f8, whose harness sources are byte-identical to comparison base. This is reuse of a source-equivalent build, not a newly run base census.

Forty original census rows: raw classification records

Both classifiers consume the same frozen After body, shell, runtime-only references and compiler options. The oldClassifier and headClassifier objects below are extracted from the saved replay JSON, joined by full method identity. They describe classification of an unchanged target; no row becomes valid.

Checked again for this publication:

identities: 40 old == 40 head == 40 frozen inputs
first product projections: 40 Full -> 40 Full
upstream product change d93cb58f8 -> 8d72a548d: 55 initializer removals
other body edits: 0
old diagnostics: 50 CS0165
head diagnostics: 50 VLD0002
raw CS0165 messages retained exactly: 50/50
head IsValid == true: 0/40

The upstream initializer removal belongs to #9944, not this PR. Input SHA-256: b12826cc3b562ac13afdaac94e35f2bcec1ec9dac4bed30b3f10e560ceed83e1. No full baseline was regenerated.

All 40 full identities and raw old/head diagnostics (JSON)
[
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/DotnetInspector.Services.dll!DotnetInspector.Services.ProjectAssetsParser::TryGetFrameworkDependencies(System.Text.Json:System.Text.Json.JsonElement, corelib:System.String, ref System.Text.Json:System.Text.Json.JsonElement) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'framework'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'framework'; assignment context unavailable: unresolved out invocation 'TryGetPropertyCaseInsensitive'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Analysis.dll!ILInspector.Analysis.TypeRef::DisplayName() -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'keyword'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'keyword'; assignment context unavailable: unresolved out invocation 'global::ILInspector.Analysis.TypeRef.s_keywords.TryGetValue'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.CSharpPrinter::BitwiseUnsignedOperand(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.IrExpression, corelib:System.Boolean) -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'value'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'value'; assignment context unavailable: unresolved out invocation 'TryGetIntegerConstant'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.CSharpPrinter::EnumMemberName(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.Constant) -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'name'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'name'; assignment context unavailable: unresolved out invocation '_function.EnumMembers.TryGetValue'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.CSharpPrinter::EnumUnderlyingType(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.TypeRef) -> ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.TypeRef",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'underlying'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'underlying'; assignment context unavailable: unresolved out invocation '_function.EnumUnderlyingTypes.TryGetValue'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.CSharpPrinter::IsOutOfRangeUnsignedConstant(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.IrExpression) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'value'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'value'; assignment context unavailable: unresolved out invocation 'TryGetIntegerConstant'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.CrossAssemblyTypeResolver::Implements(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.TypeRef, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.TypeRef) -> ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.MetadataFactState",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'implements'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'implements'; assignment context unavailable: unresolved out invocation 'TryImplements'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.IsPatternPass::FoldPositionalPatternReturnOne(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.IrFunction, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.Stepper) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'pattern'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'pattern'; assignment context unavailable: unresolved out invocation 'TryBuildPositionalPattern'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.IteratorReconstructionPass::Run(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.IrFunction, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.PassContext) -> corelib:System.Void",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'foreachBody'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'foreachBody'; assignment context unavailable: unresolved out invocation 'global::ILInspector.Decompiler.Pipeline.ForeachIteratorReconstruction.TryReconstruct'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.NullConditionalPass::RaiseSpilled(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.IrFunction, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.Stepper) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'member'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'member'; assignment context unavailable: unresolved out invocation 'IsNullConditionalShape'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.RangeFromGetSubArrayPass::Run(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.IrFunction, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.PassContext) -> corelib:System.Void",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'startEndpoint'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'endEndpoint'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'startEndpoint'; assignment context unavailable: unresolved out invocation 'TryReadRange'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'endEndpoint'; assignment context unavailable: unresolved out invocation 'TryReadRange'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.StructuringPass::EndsWithBranchTo(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.StructuringPass+Ctx, corelib:System.Int32, corelib:System.Int32) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'branchTarget'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'branchTarget'; assignment context unavailable: unresolved out invocation 'ctx.OffsetToIndex.TryGetValue'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.TupleBinaryOperatorPass::TryRaiseOperandComparisonAt(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.IrFunction, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.Block, corelib:System.Int32, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.Stepper) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'comparisonKind'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'isEquality'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'comparisonKind'; assignment context unavailable: unresolved out invocation 'TryGetLiteralKind'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'isEquality'; assignment context unavailable: unresolved out invocation 'TryGetLiteralKind'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.TupleBinaryOperatorPass::TryRaiseReturnAt(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.IrFunction, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.Block, corelib:System.Int32, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.Stepper) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'isEquality'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'isEquality'; assignment context unavailable: unresolved out invocation 'TryMatchLogical'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.TupleBinaryOperatorPass::TryRaiseSlotAt(ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.IrFunction, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.Block, corelib:System.Int32, ILInspector.Decompiler:ILInspector.Decompiler.Pipeline.Stepper) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'isEquality'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'isEquality'; assignment context unavailable: unresolved out invocation 'TryMatchArity2Conditional'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Decompiler.dll!ILInspector.Decompiler.Pipeline.TypeRef::DisplayName() -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'keyword'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'keyword'; assignment context unavailable: unresolved out invocation 'global::ILInspector.Decompiler.Pipeline.TypeRef.s_keywords.TryGetValue'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Metadata.dll!ILInspector.Metadata.ApiSurfaceExtractor::FormatDefaultValue(System.Reflection.Metadata:System.Reflection.Metadata.MetadataReader, corelib:System.Object, corelib:System.String, corelib:System.Boolean) -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'defaultValue'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'defaultValue'; assignment context unavailable: unresolved out invocation 'TryConvertEnumConstant'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Metadata.dll!ILInspector.Metadata.ApiSurfaceExtractor::TryReadAttributedParameterDefault(System.Reflection.Metadata:System.Reflection.Metadata.MetadataReader, System.Reflection.Metadata:System.Reflection.Metadata.CustomAttributeHandleCollection, ref corelib:System.Object) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'decimalValue'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'ticks'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'decimalValue'; assignment context unavailable: unresolved out invocation 'TryReadDecimalConstantAttribute'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'ticks'; assignment context unavailable: unresolved out invocation 'TryReadDateTimeConstantAttribute'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Metadata.dll!ILInspector.Metadata.ApiSurfaceExtractor::TryReadDecimalConstantAttribute(System.Reflection.Metadata:System.Reflection.Metadata.MetadataReader, System.Reflection.Metadata:System.Reflection.Metadata.CustomAttribute, ref corelib:System.Decimal) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'low'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'mid'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'low'; assignment context unavailable: unresolved out invocation 'TryGetUInt32'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'mid'; assignment context unavailable: unresolved out invocation 'TryGetUInt32'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Metadata.dll!ILInspector.Metadata.EcosystemIntegrationScanner::AddType(ILInspector.Metadata:ILInspector.Metadata.EcosystemIntegrationScanner+IntegrationBuckets, corelib:System.String, corelib:System.String) -> corelib:System.Void",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'aspNetCoreKind'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'aspireKind'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'aiKind'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'authenticationKind'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'configurationKind'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'openApiKind'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'aspNetCoreKind'; assignment context unavailable: unresolved out invocation 'TryGetAspNetCoreKind'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'aspireKind'; assignment context unavailable: unresolved out invocation 'TryGetAspireKind'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'aiKind'; assignment context unavailable: unresolved out invocation 'TryGetAIKind'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'authenticationKind'; assignment context unavailable: unresolved out invocation 'TryGetAuthenticationKind'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'configurationKind'; assignment context unavailable: unresolved out invocation 'TryGetConfigurationKind'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'openApiKind'; assignment context unavailable: unresolved out invocation 'TryGetOpenApiKind'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/ILInspector.Metadata.dll!ILInspector.Metadata.TypeMatcher::Normalize(corelib:System.String) -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'primitiveFullName'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'primitiveFullName'; assignment context unavailable: unresolved out invocation 'global::ILInspector.Metadata.PrimitiveTypeNames.TryToClrFullName'"
        }
      ]
    }
  },
  {
    "method": "nuget:dotnet-inspect.any/0.14.0/tools/net10.0/any/dotnet-inspect.dll!DotnetInspector.Inspectors.PackageFileLister::ResolvePackageReadme(corelib:System.String, corelib:System.String) -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'declaredMatch'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'declaredMatch'; assignment context unavailable: unresolved out invocation 'TryFindPackageRelativeFile'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.applicationinsights/2.23.0/lib/netstandard2.0/Microsoft.ApplicationInsights.dll!Microsoft.ApplicationInsights.Extensibility.Implementation.Telemetry::IsDeveloperMode(Microsoft.ApplicationInsights:Microsoft.ApplicationInsights.Channel.ITelemetry) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'V_1'"
        },
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'V_2'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'V_1'; assignment context unavailable: unresolved out invocation 'V_0.Properties.TryGetValue'"
        },
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'V_2'; assignment context unavailable: unresolved out invocation 'V_0.Properties.TryGetValue'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.CommonCompiler::TryReadEmbeddedFileContent(corelib:System.String, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.DiagnosticBag) -> Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.EmbeddedText",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'bytes'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'bytes'; assignment context unavailable: unresolved out invocation 'global::Microsoft.CodeAnalysis.Text.EncodedStringText.TryGetBytesFromStream'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver::GetFilteredDiagnostic(Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.Diagnostic, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.Compilation, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.Diagnostics.AnalyzerOptions, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.Diagnostics.SeverityFilter, Microsoft.CodeAnalysis:Roslyn.Utilities.ConcurrentSet`1<corelib:System.String>, corelib:System.Threading.CancellationToken) -> Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.Diagnostic",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'severity'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'severity'; assignment context unavailable: unresolved out invocation 'analyzerOptions.TryGetSeverityFromBulkConfiguration'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.Diagnostics.AnalyzerManager.AnalyzerExecutionContext::TryProcessCompletedMemberAndGetPendingSymbolEndActionsForContainer(Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.ISymbol, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.ISymbol, ref corelib:System.ValueTuple`2<System.Collections.Immutable:System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.Diagnostics.SymbolEndAnalyzerAction>, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.Diagnostics.SymbolDeclaredCompilationEvent>) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'pendingMemberSymbols'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'pendingMemberSymbols'; assignment context unavailable: unresolved out invocation '_lazyPendingMemberSymbolsMap.TryGetValue'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.Emit.DefinitionMap::TryGetMethodHandle(Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal, ref System.Reflection.Metadata:System.Reflection.Metadata.MethodDefinitionHandle) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'methodIndex'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'methodIndex'; assignment context unavailable: unresolved out invocation 'Baseline.MethodsAdded.TryGetValue'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.Emit.EncVariableSlotAllocator::TryGetPreviousLambda(Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.SyntaxNode, corelib:System.Boolean, corelib:System.Int32, System.Collections.Immutable:System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.CodeGen.DebugId>, ref Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.CodeGen.DebugId, ref corelib:System.Nullable`1<Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.Emit.RuntimeRudeEdit>) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'syntaxOffset'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'syntaxOffset'; assignment context unavailable: unresolved out invocation 'TryGetPreviousLambdaSyntaxOffset'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.Emit.EncVariableSlotAllocator::TryGetPreviousStateMachineState(Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.CodeGen.AwaitDebugId, ref Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.StateMachineState) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'syntaxOffset'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'syntaxOffset'; assignment context unavailable: unresolved out invocation 'TryGetPreviousSyntaxOffset'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.GreenNode::GetDiagnostics() -> Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.DiagnosticInfo[]",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'diags'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'diags'; assignment context unavailable: unresolved out invocation 'global::Microsoft.CodeAnalysis.GreenNode.s_diagnosticsTable.TryGetValue'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.PEModule::HasDateTimeConstantAttribute(System.Reflection.Metadata:System.Reflection.Metadata.EntityHandle, ref Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.ConstantValue) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'value'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'value'; assignment context unavailable: unresolved out invocation 'TryExtractLongValueFromAttribute'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.common/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.PEModule::HasInlineArrayAttribute(System.Reflection.Metadata:System.Reflection.Metadata.TypeDefinitionHandle, ref corelib:System.Int32) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'value'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'value'; assignment context unavailable: unresolved out invocation 'TryExtractValueFromAttribute<int>'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.csharp/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.ObjectDisplay::FormatLiteral(corelib:System.Char, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.ObjectDisplayOptions) -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'replaceWith'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'replaceWith'; assignment context unavailable: unresolved out invocation 'TryReplaceChar'"
        }
      ]
    }
  },
  {
    "method": "nuget:microsoft.codeanalysis.csharp/5.0.0/lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.SyntaxAndDeclarationManager::UpdateSyntaxTreesAndOrdinalMapOnly(Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1<Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.SyntaxTree>, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.SyntaxTree, corelib:System.Collections.Generic.IDictionary`2<Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.SyntaxTree, corelib:System.Int32>, System.Collections.Immutable:System.Collections.Immutable.ImmutableDictionary`2<Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.SyntaxTree, System.Collections.Immutable:System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.LoadDirective>>, System.Collections.Immutable:System.Collections.Immutable.ImmutableDictionary`2<corelib:System.String, Microsoft.CodeAnalysis:Microsoft.CodeAnalysis.SyntaxTree>) -> corelib:System.Void",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'loadedTree'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'loadedTree'; assignment context unavailable: unresolved out invocation 'TryGetLoadedSyntaxTree'"
        }
      ]
    }
  },
  {
    "method": "nuget:newtonsoft.json/13.0.4/lib/net6.0/Newtonsoft.Json.dll!Newtonsoft.Json.Serialization.JsonArrayContract::.ctor(corelib:System.Type) -> corelib:System.Void",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'V_2'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'V_2'; assignment context unavailable: unresolved out invocation 'global::Newtonsoft.Json.Utilities.ImmutableCollectionsUtils.TryBuildImmutableForArrayContract'"
        }
      ]
    }
  },
  {
    "method": "nuget:newtonsoft.json/13.0.4/lib/net6.0/Newtonsoft.Json.dll!Newtonsoft.Json.Serialization.JsonDictionaryContract::.ctor(corelib:System.Type) -> corelib:System.Void",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'V_2'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'V_2'; assignment context unavailable: unresolved out invocation 'global::Newtonsoft.Json.Utilities.ImmutableCollectionsUtils.TryBuildImmutableForDictionaryContract'"
        }
      ]
    }
  },
  {
    "method": "nuget:newtonsoft.json/13.0.4/lib/net6.0/Newtonsoft.Json.dll!Newtonsoft.Json.Serialization.JsonSerializerInternalReader::EnsureType(Newtonsoft.Json:Newtonsoft.Json.JsonReader, corelib:System.Object, corelib:System.Globalization.CultureInfo, Newtonsoft.Json:Newtonsoft.Json.Serialization.JsonContract, corelib:System.Type) -> corelib:System.Object",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'V_5'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'V_5'; assignment context unavailable: unresolved out invocation 'global::Newtonsoft.Json.Utilities.DateTimeUtils.TryParseDateTime'"
        }
      ]
    }
  },
  {
    "method": "nuget:newtonsoft.json/13.0.4/lib/net6.0/Newtonsoft.Json.dll!Newtonsoft.Json.Serialization.JsonSerializerInternalWriter::GetPropertyName(Newtonsoft.Json:Newtonsoft.Json.JsonWriter, corelib:System.Object, Newtonsoft.Json:Newtonsoft.Json.Serialization.JsonContract, ref corelib:System.Boolean) -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'V_5'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'V_5'; assignment context unavailable: unresolved out invocation 'global::Newtonsoft.Json.Utilities.EnumUtils.TryToString'"
        }
      ]
    }
  },
  {
    "method": "nuget:nuget.versioning/7.3.0/lib/net8.0/NuGet.Versioning.dll!NuGet.Versioning.NuGetVersion::TryParse(corelib:System.String, ref NuGet.Versioning:NuGet.Versioning.NuGetVersion) -> corelib:System.Boolean",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'V_0'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'V_0'; assignment context unavailable: unresolved out invocation 'TryGetNormalizedVersion'"
        }
      ]
    }
  },
  {
    "method": "nuget:nuget.versioning/7.3.0/lib/net8.0/NuGet.Versioning.dll!NuGet.Versioning.SemanticVersion::ToString(corelib:System.String, corelib:System.IFormatProvider) -> corelib:System.String",
    "oldClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "CS0165",
          "Message": "Use of unassigned local variable 'V_0'"
        }
      ]
    },
    "headClassifier": {
      "IsValid": false,
      "malformed": [],
      "diagnostics": [
        {
          "Id": "VLD0002",
          "Message": "CS0165: Use of unassigned local variable 'V_0'; assignment context unavailable: unresolved out invocation 'TryFormatter'"
        }
      ]
    }
  }
]

Labelled controls: actual validity API observations

These eight bodies are authored controls, not inspected product artifacts. A temporary observer calls the same ValidityCheck.EvaluateRenderedBody API and fixture shell used by the committed tests. The observer does not rewrite source. Results below were collected for this evidence update against the unchanged candidate binary. These controls supplement the committed enforcing tests; they carry no product fidelity or Exact claim.

[
  {
    "Name": "required-and",
    "Body": "int value; if (System.DateTime.Now.Ticks > 0 && Missing.TryRead(out value)) return value; return 0;",
    "IsValid": false,
    "SemanticUnavailable": true,
    "HasSemanticDefect": false,
    "SemanticDiagnostics": [
      {
        "Id": "VLD0002",
        "Message": "CS0165: Use of unassigned local variable 'value'; assignment context unavailable: unresolved out invocation 'Missing.TryRead'"
      }
    ]
  },
  {
    "Name": "dependent-bound-and",
    "Body": "string text; int value; if (Missing.TryRead(out text) && int.TryParse(text, out value)) return value; return 0;",
    "IsValid": false,
    "SemanticUnavailable": true,
    "HasSemanticDefect": false,
    "SemanticDiagnostics": [
      {
        "Id": "VLD0002",
        "Message": "CS0165: Use of unassigned local variable 'value'; assignment context unavailable: unresolved out invocation 'Missing.TryRead'"
      }
    ]
  },
  {
    "Name": "skipped-if",
    "Body": "int value; if (System.DateTime.Now.Ticks > 0) Missing.TryRead(out value); return value;",
    "IsValid": false,
    "SemanticUnavailable": false,
    "HasSemanticDefect": true,
    "SemanticDiagnostics": [
      {
        "Id": "CS0165",
        "Message": "Use of unassigned local variable 'value'"
      }
    ]
  },
  {
    "Name": "skipped-and-after",
    "Body": "int value; if (System.DateTime.Now.Ticks > 0 && Missing.TryRead(out value)) { } return value;",
    "IsValid": false,
    "SemanticUnavailable": false,
    "HasSemanticDefect": true,
    "SemanticDiagnostics": [
      {
        "Id": "CS0165",
        "Message": "Use of unassigned local variable 'value'"
      }
    ]
  },
  {
    "Name": "skipped-or-true",
    "Body": "int value; if (System.DateTime.Now.Ticks > 0 || Missing.TryRead(out value)) return value; return 0;",
    "IsValid": false,
    "SemanticUnavailable": false,
    "HasSemanticDefect": true,
    "SemanticDiagnostics": [
      {
        "Id": "CS0165",
        "Message": "Use of unassigned local variable 'value'"
      }
    ]
  },
  {
    "Name": "bound-required",
    "Body": "int value; if (int.TryParse(\"1\", out value)) return value; return 0;",
    "IsValid": true,
    "SemanticUnavailable": false,
    "HasSemanticDefect": false,
    "SemanticDiagnostics": []
  },
  {
    "Name": "bound-skipped",
    "Body": "int value; if (System.DateTime.Now.Ticks > 0 && int.TryParse(\"1\", out value)) { } return value;",
    "IsValid": false,
    "SemanticUnavailable": false,
    "HasSemanticDefect": true,
    "SemanticDiagnostics": [
      {
        "Id": "CS0165",
        "Message": "Use of unassigned local variable 'value'"
      }
    ]
  },
  {
    "Name": "mixed",
    "Body": "int value; if (System.DateTime.Now.Ticks > 0 && Missing.TryRead(out value)) return value; int other; return other;",
    "IsValid": false,
    "SemanticUnavailable": true,
    "HasSemanticDefect": true,
    "SemanticDiagnostics": [
      {
        "Id": "VLD0002",
        "Message": "CS0165: Use of unassigned local variable 'value'; assignment context unavailable: unresolved out invocation 'Missing.TryRead'"
      },
      {
        "Id": "CS0165",
        "Message": "Use of unassigned local variable 'other'"
      }
    ]
  }
]

Independent gates

The focused Release command was rerun at the unchanged clean head for this publication:

Test run summary: Passed!
  total: 35
  failed: 0
  succeeded: 35
  skipped: 0
  duration: 3s 164ms

Committed boundary tests, coverage-loss gate control, and mixed Render reporting control.

Current-head CI receipts: required gate, decompiler gates, tests.

The Render replay uses inspected-assembly references, not the census runtime-only population. It retains all 57 original admitted losses as unavailable; broader 141 forced-bind totals are 70 valid, 68 unavailable, 3 defective, zero validity promotions. Complete context and the 18 native failures remain unavailable; the parent PR's whole-corpus gate is not established by these classification records.

PR head and reviewed code are unchanged. A fresh local merge probe is clean against main 48e2e68b0541fb518ce024d0ee693c52a8990fd8; intervening query/CLI/source-attribution changes do not change this classifier. #9980 changed independent RTS delegate closure availability and fidelity pins, not validity source/binding or the frozen evidence population; no new native comparison is claimed here. Required CI remains green and current-head review-clean remains applicable. No merge occurred.

Generated by Codex.

@richlander

Copy link
Copy Markdown
Owner Author

Authorized merge preflight

The user explicitly authorized merging PR #9992 and continuing. Authorization is applied to reviewed head 3ff30fe9dd81f38aab48f3b52db0558aaa1d9bdd, base ref main.

Live base moved from 48e2e68b0541fb518ce024d0ee693c52a8990fd8 to 7cc0d1182a30ddbade67a1c2fdc2aa5d914e518d. Classification: no interaction. The intervening Symbol Key, opaque bytes, query/browser, ecosystem, cache-policy and declared-source documentation changes touch no decompiler, C# emitter, harness, or decompiler-test files and change none of this slice's relied-on behavior or frozen receipts. Local test merge is clean. No integration or head change is needed.

Final GitHub preflight: exact head unchanged; base ref main; non-draft; GraphQL MERGEABLE/CLEAN; current-head ci-required success; review-clean and public round 2 reconciliation remain applicable; no unresolved review threads, no external changes-requested review, no auto-merge. The merge mutation will bind the exact reviewed head.

Generated by Codex.

@richlander
richlander merged commit 4b3db3b into main Oct 13, 2026
15 checks passed
@richlander
richlander deleted the fix/9939-validity-context branch October 13, 2026 05:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-clean PR has met the adversarial review standard per AGENTS.md.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Render A/B validity shell produces cascading CS0165 when out-call context cannot bind

1 participant