Skip to content

specs/fpga: test checks written as 'invariant <expr>;' become then/and assertions - #5731

Merged
dmitrii-f-t27 merged 1 commit into
masterfrom
fix/fpga-invariant-in-test-body
Oct 3, 2026
Merged

dmitrii-f-t27 merged 1 commit into
masterfrom
fix/fpga-invariant-in-test-body

Conversation

@dmitrii-f-t27

Copy link
Copy Markdown
Collaborator

Closes #5730

In two FPGA specs, braceless tests ended in invariant <expr>;. That keyword opens a new top-level invariant, so the parser closed the test, named a stray invariant r or total, and discarded the expression. Six tests ran their setup and asserted nothing; t27c gen emitted eight // invariant: r NOT CHECKED stubs.

  • Each invariant <expr>; is now then <expr> / and <expr> in its own test. The 9 expressions are unchanged.
  • parse-complete --show: power_analysis 3 -> nothing discarded; vcd_conformance_compare 38 -> nothing discarded.
  • t27c gen of vcd_conformance_compare: NOT CHECKED stubs 8 -> 0; r.total_checks == 1 assertions 0 -> 3. power_analysis gains total > 0.
  • Typecheck unchanged (power_analysis OK 0 warnings; vcd_conformance_compare OK 1 warning). Zig ast-check 0 errors before and after. test-report is BLOCKED on both before and after by the same pre-existing errors outside the changed lines.
  • The four seals regenerated with the t27c built from this tree; --verify reports all hashes MATCH.
  • Both parse-no-discard entries removed from docs/reports/suite_expectations.json; local t27c suite --ratchet --corpus-only: RATCHET CLEAN.

🤖 Generated with Claude Code

…d assertions (#5730)

Inside a braceless test, 'invariant <expr>;' opened a new top-level
invariant named after the first identifier and the parser discarded the
rest, so six tests in power_analysis and vcd_conformance_compare ran their
setup and asserted nothing (gen emitted 'invariant: r NOT CHECKED' stubs).
The 9 expressions are now then/and assertions of their tests, unchanged.
Seals regenerated with this tree's t27c; both parse-no-discard ledger
entries are removed.

Closes #5730

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-03 10:17:25 UTC

Summary

Status Count
Total Open PRs 42
PRs with Failing Checks 37
PRs with All Checks Green 5
READY 1
FAILING 37
PENDING 0
NO CHECKS YET 0

These columns do not partition: 1 + 37 + 0 + 0 = 38, and there are 42 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=b45a356c2eb6 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fpga specs: 'invariant <expr>;' inside a test body opens a new invariant and the test's checks are discarded

1 participant