Refactors app delaborator, merging in the projection delaborator, to support pretty printing with generalized field notation. Renames option `pp.structureProjections` to `pp.fieldNotation` and adds sub-option `pp.fieldNotation.generalized` to enable/disable generalized field notation. Adds `@[pp_nodot]` attribute to permanently disable using field notation for a given declaration. For now, the default value of `pp.fieldNotation.generalized` is false since we need a stage0 update to add `@[pp_nodot]` to some core definitions (such as `List.toArray`) before updating the tests. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.60pp.2EgeneralizedFieldNotation.60/near/425856054)
20 lines
488 B
Text
20 lines
488 B
Text
@Fn.imp ((p : P) → Bar.fn p) ({p : P} → Bar.fn p) fn : {p : P} → Bar.fn p
|
|
439.lean:18:7-18:12: error: function expected at
|
|
fn.imp
|
|
term has type
|
|
Bar.fn ?m
|
|
439.lean:29:7-29:11: error: function expected at
|
|
fn.imp
|
|
term has type
|
|
Bar.fn ?m
|
|
fn.imp : Bar.fn p
|
|
fn'.imp Bp : Bar.fn p
|
|
439.lean:39:11-39:12: error: application type mismatch
|
|
fn'.imp p
|
|
argument
|
|
p
|
|
has type
|
|
P : Sort u
|
|
but is expected to have type
|
|
Bar.fn ?m : Sort ?u
|
|
fn'.imp (sorryAx (Bar.fn ?m) true) : Bar.fn ?m
|