This PR improves pretty printing of level metavariables: they now print with a per-definition index rather than their per-module internal identifiers. Furthermore, `+` is printed uniformly in level expressions with surrounding spaces. **Breaking metaprogramming change:** level pretty printing should use `delabLevel` or `MessageData.ofLevel`; functions such as `format` or `toString` do not have access to the indices, since they are stored in the current metacontext. Absent index information, metavariables print with the raw internal identifier as `?_mvar.nnn`. **Note:** The heartbeat counter also increases quicker due to counting allocations that record level metavariable indices. In some tests we needed to increase `maxHeartbeats` by 20–50% to compensate, without a corresponding slowdown.
17 lines
261 B
Text
17 lines
261 B
Text
/--
|
|
error: unsolved goals
|
|
A : Nat
|
|
⊢ Sort ?u.2
|
|
-/
|
|
#guard_msgs in
|
|
variable (A : Nat) (B : by skip)
|
|
|
|
/-- error: Failed to infer type of definition `foo` -/
|
|
#guard_msgs in
|
|
def foo :=
|
|
A = B
|
|
|
|
/-- warning: declaration uses `sorry` -/
|
|
#guard_msgs in
|
|
def boo :=
|
|
B
|