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.)
59 lines
1.2 KiB
Text
59 lines
1.2 KiB
Text
inductive Expr : id Type
|
||
| var : Nat → Expr
|
||
| app : String → List Expr → Expr
|
||
|
||
partial def Expr.fold (f : Nat → α → α) : Expr → α → α
|
||
| var n, a => f n a
|
||
| app s as, a => as.foldl (init := a) fun a e => fold f e a
|
||
|
||
def Expr.isVar : Expr → Bool
|
||
| var _ => true
|
||
| _ => false
|
||
|
||
inductive Lst (α : Type u) : id (id (Type u))
|
||
| nil : Lst α
|
||
| cons : α → Lst α → Lst α
|
||
|
||
protected def Lst.append : Lst α → Lst α → Lst α
|
||
| nil, bs => bs
|
||
| cons a as, bs => cons a (Lst.append as bs)
|
||
|
||
/--
|
||
info: inductive Lst.{u} : Type u → id (id (Type u))
|
||
number of parameters: 1
|
||
constructors:
|
||
Lst.nil : {α : Type u} → Lst α
|
||
Lst.cons : {α : Type u} → α → Lst α → Lst α
|
||
-/
|
||
#guard_msgs in
|
||
#print Lst
|
||
|
||
def Set (α : Type u) : Type u := α → Prop
|
||
|
||
mutual
|
||
inductive Even : Set Nat
|
||
| zero : Even 0
|
||
| succ : Odd n → Even n
|
||
|
||
inductive Odd : Set Nat
|
||
| succ : Even n → Odd n
|
||
end
|
||
|
||
/--
|
||
info: inductive Even : Set Nat
|
||
number of parameters: 0
|
||
constructors:
|
||
Even.zero : Even 0
|
||
Even.succ : ∀ {n : Nat}, Odd n → Even n
|
||
-/
|
||
#guard_msgs in
|
||
#print Even
|
||
|
||
/--
|
||
info: inductive Odd : Set Nat
|
||
number of parameters: 0
|
||
constructors:
|
||
Odd.succ : ∀ {n : Nat}, Even n → Odd n
|
||
-/
|
||
#guard_msgs in
|
||
#print Odd
|