This PR extends Lean's syntax to allow explicit universe levels in
expressions such as `e.f.{u,v}`, `(f e).g.{u}`, and `e |>.f.{u,v} x y
z`. It fixes a bug where universe levels would be attributed to the
wrong expression; for example `x.f.{u}` would be interpreted as
`x.{u}.f`. It also changes the syntax of top-level declarations to not
allow space between the identifier and the universe level list, and it
fixes a bug in the `checkWsBefore` parser where it would not detect
whitespace across `optional` parsers.
Closes #8743
|
||
|---|---|---|
| .. | ||
| bin | ||
| cmake | ||
| include/lean | ||
| Init | ||
| initialize | ||
| kernel | ||
| lake | ||
| Lean | ||
| library | ||
| runtime | ||
| shell | ||
| Std | ||
| util | ||
| cadical.mk | ||
| CMakeLists.txt | ||
| config.h.in | ||
| githash.h.in | ||
| Init.lean | ||
| lakefile.toml.in | ||
| lean-toolchain | ||
| Lean.lean | ||
| lean.mk.in | ||
| Leanc.lean | ||
| LeanChecker.lean | ||
| LeanIR.lean | ||
| out | ||
| Std.lean | ||
| stdlib.make.in | ||
| stdlib_flags.h | ||
| version.h.in | ||