Skip to content

Conversation

@spcfox
Copy link
Contributor

@spcfox spcfox commented Nov 27, 2025

Description

Fixes various issues in the coverage checker, primarily those that lead to a proof of false. Also improves the checking of impossible cases (both user-defined and compiler-inferred).

  1. Added test for covering checker has a bug #2159. It seems to have already been fixed in main branch. Closes covering checker has a bug #2159.
  2. Added test for Proof of Void due to a coverage-checking bug #2690. It seems to have already been fixed in main branch. Closes Proof of Void due to a coverage-checking bug #2690.
  3. Fixed Incorrect coverage checking with pattern containing %search #1800
  4. Fixed Proving false is true in "0" space with implicit vars #1998
  5. Fixed Inconsistency due to pattern matching error #2318
  6. Fixed Proof of void when number of args changes depending on pattern match #2822
  7. Fixed [ regression ] misleading compiler warning about impossible case #3679
  8. Fixed several previously unknown proofs of false and bugs (see tests)
  9. Fixed (reverted) Erased type-casing function seen as total when it's not #3357
    The fix significantly worsens coverage checking for erased functions. I’ll return to this later.

I do not use the total modifier in tests because coverage should be checked by default.

Self-check

  • This is my first time contributing, I've carefully read CONTRIBUTING.md
    and I've updated CONTRIBUTORS.md with my name.
  • If this is a fix, user-facing change, a compiler change, or a new paper
    implementation, I have updated CHANGELOG_NEXT.md

@spcfox spcfox changed the title Improvements and fixes to the coverage checker [ fix ] Improvements and fixes to the coverage checker Nov 27, 2025
@spcfox spcfox force-pushed the fix-coverage-check branch 3 times, most recently from fc0205f to 4abe12c Compare November 30, 2025 16:04
@spcfox spcfox marked this pull request as ready for review November 30, 2025 18:51
@spcfox spcfox force-pushed the fix-coverage-check branch 2 times, most recently from 1e3d06e to 78fb63a Compare December 1, 2025 10:50
@spcfox spcfox force-pushed the fix-coverage-check branch from 78fb63a to 80447c1 Compare December 1, 2025 18:44
@spcfox spcfox requested a review from dunhamsteve December 1, 2025 19:07
@spcfox spcfox requested a review from Matthew-Mosior December 2, 2025 20:32
@spcfox spcfox force-pushed the fix-coverage-check branch 2 times, most recently from 340cb5c to 37266ee Compare December 4, 2025 14:18
Copy link
Collaborator

@buzden buzden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After the last change regarding to the management of Types, I think it's all okay now

@spcfox
Copy link
Contributor Author

spcfox commented Dec 4, 2025

After the last change regarding to the management of Types, I think it's all okay now

I’ve found that there’s still an issue with matching on primitive types. I’m already finishing up the fix.

matchInt : () -> Void
matchInt Int impossible

@spcfox spcfox force-pushed the fix-coverage-check branch from 37266ee to 04f8c8c Compare December 4, 2025 16:29
@spcfox
Copy link
Contributor Author

spcfox commented Dec 4, 2025

Done!

@buzden buzden merged commit 153d945 into idris-lang:main Dec 5, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

4 participants