Many of our tests in `tests/lean/run/` produce output from `#eval` (or `#check`) statements, that is then ignored. This PR tries to capture all the useful output using `#guard_msgs`. I've only done a cursory check that the output is still sane --- there is a chance that some "unchecked" tests have already accumulated regressions and this just cements them! In the other direction, I did identify two rotten tests: * a minor one in `setStructInstNotation.lean`, where a comment says `Set Nat`, but `#check` actually prints `?_`. Weird? * `CompilerProbe.lean` is generating empty output, apparently indicating that something is broken, but I don't know the signficance of this file. In any case, I'll ask about these elsewhere. (This started by noticing that a recent `grind` test file had an untested `trace_state`, and then got carried away.)
16 lines
524 B
Text
16 lines
524 B
Text
import Lean
|
||
open Lean Elab Term
|
||
|
||
elab "foo" t:term "," s:term : term => do
|
||
let e ← Elab.Term.elabTermAndSynthesize t none
|
||
let e2 ← Elab.Term.elabTermAndSynthesize s none
|
||
let t ← ofExceptKernelException (Kernel.whnf (← getEnv) (← getLCtx) (.app e e2))
|
||
logInfo t
|
||
return e
|
||
|
||
variable {α : Sort u} {r : α → α → Prop} {β : Sort v} (f : α → β)
|
||
(H : ∀ (a b : α), r a b → f a = f b)
|
||
|
||
/-- info: Quot.lift f H @Quot.mk -/
|
||
#guard_msgs in
|
||
example := foo @Quot.lift.{u, v} α r β f H, @Quot.mk.{u}
|