lean4-htt/tests/lean/run/emptyLcnf.lean
Kyle Miller 69c71f6476
fix: make elabAsElim aware of explicit motive arguments (#4817)
Some eliminators (such as `False.rec`) have an explicit motive argument.
The `elabAsElim` elaborator assumed that all motives are implicit.

If the explicit motive argument is `_`, then it uses the elab-as-elim
procedure, and otherwise it falls back to the standard app elaborator.

Furthermore, if an explicit elaborator is not provided, it falls back to
treating the elaborator as being implicit, which is convenient for
writing `h.rec` rather than `h.rec _`. Rationale: for `False.rec`, this
simulates it having an implicit motive, and also motives are generally
not going to be available in the expected type.

Closes #4347
2024-07-29 19:18:47 +00:00

16 lines
298 B
Text

import Lean
inductive MyEmpty
def f (x : MyEmpty) : Nat :=
MyEmpty.casesOn _ x
set_option trace.Compiler.result true
/--
info: [Compiler.result] size: 0
def f._redArg : Nat :=
[Compiler.result] size: 0 def f x : Nat := ⊥
-/
#guard_msgs in
run_meta Lean.Compiler.compile #[``f]