Fixes an issue where each alternative in choice nodes would get their own arguments. Now cdot function expansion is aware of choice nodes. Also modifies the variable naming so that multi-argument functions like `(· + ·)` expand as `fun x1 x2 => x1 + x2` rather than `fun x x_1 => x + x_1`. Closes #4832
15 lines
557 B
Text
15 lines
557 B
Text
diamond1.lean:11:40-11:45: error: parent field type mismatch, field 'a' from parent 'Baz' has type
|
||
α → α : Type
|
||
but is expected to have type
|
||
α : Type
|
||
structure Foo : Type → Type
|
||
number of parameters: 1
|
||
constructor:
|
||
Foo.mk : {α : Type} → Bar (α → α) → (Bool → α) → Nat → Foo α
|
||
fields:
|
||
toBar : Bar (α → α)
|
||
c : Bool → α
|
||
d : Nat
|
||
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
|