lean4-htt/tests/lean/run/compiler_proj_bug.lean
Joachim Breitner 7d60d8b563
feat: safer #eval, and #eval! (#4810)
previously, `#eval` would happily evaluate expressions that contain
`sorry`, either explicitly or because of failing tactics. In conjunction
with operations like array access this can lead to the lean process
crashing, which isn't particularly great.

So how `#eval` will refuse to run code that (transitively) depends on
the `sorry` axiom (using the same code as `#print axioms`).

If the user really wants to run it, they can use `#eval!`.

Closes #1697
2024-07-23 15:26:56 +00:00

13 lines
185 B
Text

structure S :=
(a : Nat) (h : a > 0) (b : Nat)
def f (s : S) :=
s.b - s.a
/--
warning: declaration uses 'sorry'
---
info: 25
-/
#guard_msgs in
#eval! f {a := 5, b := 30, h := sorry }