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.
24 lines
398 B
Text
24 lines
398 B
Text
/--
|
|
error: Invalid projection: Type of
|
|
x✝
|
|
is not known; cannot resolve projection `1`
|
|
---
|
|
error: unsolved goals
|
|
case refine'_1
|
|
⊢ Sort ?u.4
|
|
|
|
case refine'_2
|
|
⊢ Sort ?u.3
|
|
|
|
case refine'_3
|
|
⊢ ?refine'_1
|
|
|
|
case refine'_4
|
|
⊢ ?refine'_1
|
|
|
|
case refine'_5
|
|
⊢ ¬(fun x => ?m.9) ?refine'_3 = (fun x => ?m.9) ?refine'_4
|
|
-/
|
|
#guard_msgs in
|
|
example : False := by
|
|
refine' absurd (congrArg (·.1) sorry) _
|