This PR updates the styling and wording of error messages produced in inductive type declarations and anonymous constructor notation, including hints for inferable constructor visibility updates.
21 lines
690 B
Text
21 lines
690 B
Text
diamond1.lean:11:40-11:45: error: Field type mismatch: Field `a` from parent `Baz` has type
|
||
α → α
|
||
but is expected to have type
|
||
α
|
||
structure Foo (α : Type) : Type
|
||
number of parameters: 1
|
||
parents:
|
||
Foo.toBar : Bar (α → α)
|
||
Foo.toBaz : Baz α
|
||
fields:
|
||
Bar.a : α → α
|
||
Bar.b : Nat → α → α
|
||
Baz.c : Bool → α
|
||
Baz.d : Nat
|
||
constructor:
|
||
Foo.mk {α : Type} (toBar : Bar (α → α)) (c : Bool → α) (d : Nat) : Foo α
|
||
field notation resolution order:
|
||
Foo, Bar, Baz
|
||
def f : Nat → Foo Nat :=
|
||
fun x => { a := fun y => x + y, b := fun x1 x2 => x1 + x2, c := fun x_1 => x, d := x }
|
||
diamond1.lean:27:47-27:52: warning: Field `a` from `Baz` has already been declared
|