Comment from parser.h
This commit makes sure that all declaration parameters must be surrounded with some kind of bracket. (e.g., '()', '{}', '[]').
The goal is to avoid counter-intuitive declarations such as:
example p : false := trivial
def main proof : false := trivial
which would be parsed as
example (p : false) : _ := trivial
def main (proof : false) : _ := trivial
where `_` in both cases is elaborated into `true`. This issue was raised by @gebner in the slack channel.
Remark: we still want implicit delimiters for lambda/pi expressions. That is, we want to write
fun x : t, s
or
fun x, s
instead of
fun (x : t), s
32 lines
1.4 KiB
Text
32 lines
1.4 KiB
Text
1293.lean:3:21: error: tactic 'whnf' failed, given expression should not contain de-Bruijn variables, they should be replaced with local constants before using this tactic
|
|
state:
|
|
⊢ true
|
|
1293.lean:5:21: error: tactic 'whnf' failed, given expression should not contain de-Bruijn variables, they should be replaced with local constants before using this tactic
|
|
state:
|
|
⊢ true
|
|
1293.lean:7:21: error: tactic 'head_zeta' failed, given expression should not contain de-Bruijn variables, they should be replaced with local constants before using this tactic
|
|
state:
|
|
⊢ true
|
|
1293.lean:9:21: error: tactic 'unify' failed, given expression should not contain de-Bruijn variables, they should be replaced with local constants before using this tactic
|
|
state:
|
|
⊢ true
|
|
1293.lean:11:21: error: tactic 'is_def_eq' failed, given expression should not contain de-Bruijn variables, they should be replaced with local constants before using this tactic
|
|
state:
|
|
⊢ true
|
|
1293.lean:13:28: error: tactic 'infer_type' failed, given expression should not contain de-Bruijn variables, they should be replaced with local constants before using this tactic
|
|
state:
|
|
foo : ?m_1,
|
|
trivial : ?m_2
|
|
⊢ ?m_3
|
|
1293.lean:13:9: error: don't know how to synthesize placeholder
|
|
context:
|
|
⊢ Sort ?
|
|
1293.lean:13:13: error: don't know how to synthesize placeholder
|
|
context:
|
|
foo : ⁇
|
|
⊢ Sort ?
|
|
1293.lean:13:8: error: don't know how to synthesize placeholder
|
|
context:
|
|
foo : ⁇,
|
|
trivial : ⁇
|
|
⊢ Sort ?
|