mirror of
https://github.com/leanprover/lean4.git
synced 2026-03-17 18:34:06 +00:00
32 lines
1015 B
Lean4
32 lines
1015 B
Lean4
/-
|
|
This is an annoyingly unhelpful error message that I see all the time.
|
|
An exact line number would help a lot, but even so it would be great
|
|
to replace the `⟨...⟩` with the actual term in question.
|
|
|
|
[Leo]: The bad position is due the transition to the new elaborator.
|
|
The new frontend produces the correct position.
|
|
Note that, the new frontend reports an error at `⟨4⟩`. This is the correct
|
|
position, and it is not possible to infer anything about the expected type since
|
|
`x4` is not used anywhere. So, the error message is the best we can get.
|
|
There is no actual term to replace. If we comment the line `let x4 := ...`,
|
|
the new elaborator succeeds.
|
|
|
|
-/
|
|
structure Foo := (n : Nat)
|
|
|
|
def Foo.sum (xs : List Foo) : Foo :=
|
|
xs.foldl (λ s x => ⟨s.n + x.n⟩) ⟨0⟩
|
|
|
|
#check
|
|
let x1 := ⟨1⟩;
|
|
let x2 := ⟨2⟩;
|
|
let x3 := ⟨3⟩;
|
|
let x4 := ⟨4⟩;
|
|
let x5 := ⟨5⟩;
|
|
let x6 := ⟨6⟩;
|
|
Foo.sum [x1, x2, x3, x5, x6]
|
|
/-
|
|
error: invalid constructor ⟨...⟩, expected type is not an inductive type
|
|
?m_1
|
|
-/
|