lean4-htt/tests/lean/run/scopedLocalReducibility.lean
Joachim Breitner 8424ddbb3e
feat: prettier expected type mismatch error message (#9099)
This PR improves the “expected type mismatch” error message by omitting
the type's types when they are defeq, and putting them into separate
lines when not.

I found it rather tediuos to parse the error message when the expected
type is long, because I had to find the `:` in the middle of a large
expression somewhere. Also, when both are of sort `Prop` or `Type` it
doesn't add much value to print the sort (and it’s only one hover away
anyways).
2025-07-01 07:50:53 +00:00

64 lines
893 B
Text

@[irreducible] def f (x : Nat) := x + 1
set_option allowUnsafeReducibility true
set_option pp.mvars false
/--
error: type mismatch
rfl
has type
?_ = ?_
but is expected to have type
f x = x + 1
-/
#guard_msgs in
example : f x = x + 1 :=
rfl
section
attribute [local reducible] f
example : f x = x + 1 :=
rfl
end
/--
error: type mismatch
rfl
has type
?_ = ?_
but is expected to have type
f x = x + 1
-/
#guard_msgs in
example : f x = x + 1 :=
rfl
namespace Boo
attribute [scoped semireducible] f
end Boo
/--
error: type mismatch
rfl
has type
?_ = ?_
but is expected to have type
f x = x + 1
-/
#guard_msgs in
example : f x = x + 1 :=
rfl
open Boo in -- `f` should be `semireducible
example : f x = x + 1 :=
rfl
/--
error: type mismatch
rfl
has type
?_ = ?_
but is expected to have type
f x = x + 1
-/
#guard_msgs in
example : f x = x + 1 :=
rfl