Skip to content

fix: verifier catches non-map first arg on multi-arg map builtins#351

Merged
danieljohnmorris merged 4 commits into
mainfrom
fix/map-verifier-hole
May 17, 2026
Merged

fix: verifier catches non-map first arg on multi-arg map builtins#351
danieljohnmorris merged 4 commits into
mainfrom
fix/map-verifier-hole

Conversation

@danieljohnmorris
Copy link
Copy Markdown
Collaborator

Summary

Closes db-analyst rerun8 verifier hole: mget/mset/mhas/mdel now type-check their first arg as M at verify time, matching the existing single-arg mkeys check.

Repro

  • Before: mget tg "a" where tg : F M t n passed verify, errored ILO-R004 at runtime
  • After: errors with ILO-T013 at verify time, no runtime trip

Tests

  • 13 new regression tests in tests/regression_map_verifier_hole.rs
  • All previous tests still pass

Closes the verifier hole reported by db-analyst rerun8: passing a fn ref
(or other non-M type) as the first arg to a multi-arg map builtin used to
pass verify and fail at runtime with ILO-R004. Now correctly surfaces
ILO-T013 at verify time, matching the existing single-arg (mkeys) check.
@codecov
Copy link
Copy Markdown

codecov Bot commented May 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

The verifier now catches non-map first arg before the interpreter runs,
so the coverage test must accept either the new ILO-T013 verify-time
error or the legacy ILO-R009 runtime error.
@danieljohnmorris danieljohnmorris merged commit 2a22a45 into main May 17, 2026
5 checks passed
@danieljohnmorris danieljohnmorris deleted the fix/map-verifier-hole branch May 17, 2026 21:13
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.

1 participant