This PR improves the error messages produced by invalid projections and field notation. It also adds a hint to the "function expected" error message noting the argument to which the term is being applied, which can be helpful for debugging spurious "function expected" messages actually caused by syntax errors. --------- Co-authored-by: Joachim Breitner <mail@joachim-breitner.de>
14 lines
793 B
Text
14 lines
793 B
Text
funind_errors.lean:4:7-4:26: error: unknown identifier 'doesNotExist.induct'
|
||
funind_errors.lean:22:7-22:23: error: unknown constant 'takeWhile.induct'
|
||
takeWhile.foo.induct.{u_1} {α : Type u_1} (p : α → Bool) (as : Array α) (motive : Nat → Array α → Prop)
|
||
(case1 :
|
||
∀ (i : Nat) (r : Array α) (h : i < as.size),
|
||
let a := as.get i h;
|
||
p a = true → motive (i + 1) (r.push a) → motive i r)
|
||
(case2 :
|
||
∀ (i : Nat) (r : Array α) (h : i < as.size),
|
||
let a := as.get i h;
|
||
¬p a = true → motive i r)
|
||
(case3 : ∀ (i : Nat) (r : Array α), ¬i < as.size → motive i r) (i : Nat) (r : Array α) : motive i r
|
||
funind_errors.lean:38:7-38:20: error: unknown constant 'idEven.induct'
|
||
funind_errors.lean:45:7-45:19: error: unknown constant 'idAcc.induct'
|