lean4-htt/tests/lean/evalLeak.lean

23 lines
631 B
Text

import Lean
#eval match true with | true => false | false => true
open Lean Elab Command Meta
#eval show CommandElabM Unit from do
match ([] : List Nat) with
| [] =>
liftCoreM <| addDecl <| Declaration.defnDecl {
name := `foo
type := Lean.mkConst ``Bool
levelParams := []
value := Lean.mkConst ``true
hints := .opaque
safety := .safe
}
| _ => return ()
#check foo
-- The auxiliary declarations created to elaborate the commands above
-- should not leak into the environment
#check _eval.match_1 -- Should fail
#check _eval.match_2 -- Should fail