compiler-403.md

August 2, 2026 · View on GitHub

What happens

Two tests/PlatoTests cases fail with FileNotFoundException rather than an assertion:

  • Positive_CompilesWithoutDiagnostics("stored-interface-ok.plato")
  • Negative_RaisesExpectedDiagnostic("negatives/viewless-interface-field.plato")

The fixtures were renamed interface -> concept (tests/plato-test-existential/stored-concept-ok.plato, tests/plato-test-existential/negatives/viewless-concept-field.plato) and the [TestCase] attributes at tests/PlatoTests/ExistentialConceptCheckerTests.cs:51 and :60 were not updated.

Why it matters

Small, but it is two red tests in the default dotnet test tests/PlatoTests run, which makes the suite's baseline "2 failures, ignore those" — the state in which a real regression hides. It also means the existential-concept checker (stored interface-typed field diagnostics) currently has no executing coverage at all.

Simplest fix

Rename the two strings in the [TestCase] attributes to match the files on disk. No production code involved.

Resolution (2026-08-02)

Fixed the opposite way from "Simplest fix": the terminology sweep (e85f761) is the intended direction, so the two fixture files were renamed to the interface names the [TestCase] attributes already use (stored-interface-ok.plato, negatives/viewless-interface-field.plato). Landed in 051f538 (the renames were staged in a shared working tree and picked up by a concurrent session's commit). Full dotnet test tests/PlatoTests: 247/247 green.

Note: the causality in "What happens" was backwards — the sweep renamed the strings in the test file, not the fixtures; the files on disk still had the pre-sweep concept names.

Found by

Noticed while running the PlatoTests suite for compiler-399; unrelated to that change.