Leonardo de Moura
e682c1c88f
fix: make sure @ disable new syntax and macros too
...
cc @Kha
2020-03-26 12:14:55 -07:00
Leonardo de Moura
0c5a08a16e
chore: make sure Delaborator.lean still compiles
...
@Kha I removed `{}` `[]` from `funBinder`.
Please make sure `Delaborator.lean` still does what you want.
2020-03-26 10:40:16 -07:00
Leonardo de Moura
19be2a5ade
chore: remove {} and [] from funBinder
2020-03-26 10:40:16 -07:00
Leonardo de Moura
6625656940
refactor: remove support for fun {a : A} => ...
...
The semantics was weird. It seems Agda is also having problems with
it. Here is an example that demonstrates how weird the semantics is:
```lean
check (fun {β α} (a : α) (b : β) => (b, a) : {α : Type} → {β : Type} → (a : α) → (b : β) → β × α)
-- Same example using `def`
def f : {α : Type} → {β : Type} → α → β → β × α :=
fun {β : Type} {α : Type} (a : α) (b : β) => (b, a)
```
Both commands were being accepted before this commit. Note that it
flips `β` and `α`.
Here is an example that did not work before this commit and would
confuse users.
```lean
check
let id := fun {α} (a : α) => a;
id [id 1]
```
users would have to write
```lean
check
let id {α} (a : α) := a;
id [id 1]
```
@Kha The Delaborator.lean test broke and I "fixed" by removing the
`{}` from it, and copying `produced` over `expected`. Please make sure
it still makes sense.
2020-03-26 10:40:16 -07:00
Leonardo de Moura
227f985f84
fix: bug at generalizeTelescope
2020-03-25 16:00:55 -07:00
Leonardo de Moura
08aa4db110
feat: add generalizeTelescope
2020-03-25 16:00:55 -07:00
Sebastian Ullrich
6ffe310c48
feat: delab coercions
2020-03-24 17:27:10 +01:00
Sebastian Ullrich
fdc03c9d74
feat: delab projections
2020-03-24 17:27:02 +01:00
Leonardo de Moura
098b0edbcb
chore: remove dead code
2020-03-23 15:56:29 -07:00
Leonardo de Moura
2c12a073fa
fix: missing file
2020-03-23 15:49:22 -07:00
Leonardo de Moura
2cc0f25bf5
feat: getLine at EOF should return empty string
...
This is the same approach used in Rust, and it simplifies the code.
2020-03-23 15:44:47 -07:00
Leonardo de Moura
dc80b76106
feat: add IO.FS.lines
2020-03-23 14:53:27 -07:00
Leonardo de Moura
12c5075c67
fix: String.dropRight
2020-03-23 14:51:05 -07:00
Leonardo de Moura
41949ee801
refactor: String.toNat ==> String.toNat? and String.toNat!
2020-03-23 14:29:48 -07:00
Leonardo de Moura
94f016a3e8
fix: readLine and test
2020-03-23 14:06:17 -07:00
Leonardo de Moura
b2bddb5606
chore: style
2020-03-23 14:06:02 -07:00
Leonardo de Moura
db914052ce
fix: IO.getLine
2020-03-23 12:26:09 -07:00
Leonardo de Moura
2efc1855f0
fix: object may be a boxed scalar
...
Example: IOError.unexpectedEof
2020-03-23 12:14:32 -07:00
Leonardo de Moura
918256ff1f
fix: we cannot export constants
2020-03-23 11:54:54 -07:00
Leonardo de Moura
910cc33101
fix: missing lowerLooseBVars
2020-03-20 18:18:57 -07:00
Leonardo de Moura
b2901a9225
feat: add Closure.lean
2020-03-20 17:54:26 -07:00
Leonardo de Moura
b705142ae4
refactor: KernelException at MetaM
2020-03-20 17:54:26 -07:00
Leonardo de Moura
86784594d6
feat: add getFVars
2020-03-20 17:54:26 -07:00
Leonardo de Moura
11d6f91896
feat: add hasUnsafe
2020-03-20 17:54:26 -07:00
Sebastian Ullrich
a0e3f5f1c6
fix: delaborator positions
2020-03-20 16:50:47 +01:00
Sebastian Ullrich
4cff135ec3
feat: #eval: auto-hide () output for m Unit chained instances
2020-03-19 17:18:15 -07:00
Sebastian Ullrich
7f09973d43
feat: basic delaborator
2020-03-19 17:17:34 -07:00
Sebastian Ullrich
ed14375dad
feat: sort and deduplicate "expected" tokens in parser error messages
2020-03-19 17:17:08 -07:00
Sebastian Ullrich
50cc5573e7
fix: Expr.bindingName!
2020-03-19 17:16:05 -07:00
Sebastian Ullrich
ac2360d822
feat: Syntax.formatStx: optionally show position information
2020-03-19 17:15:49 -07:00
Sebastian Ullrich
c187b1c917
refactor: move HasQuote into Init.Lean.Syntax
2020-03-19 17:14:42 -07:00
Sebastian Ullrich
e999fa678d
feat: add some useful helper functions I didn't actually use in the end
2020-03-19 17:14:31 -07:00
Sebastian Ullrich
3e7bc07f19
fix: FileMap.toPosition: terminate if position is out of bounds
2020-03-19 17:14:18 -07:00
Sebastian Ullrich
6863877a1e
feat: register [delab] attribute
2020-03-19 17:09:11 -07:00
Leonardo de Moura
8c7dc85b7e
feat: add new quotation syntax
...
cc @Kha
2020-03-19 17:01:34 -07:00
Leonardo de Moura
6df8959c1c
refactor: add Recognizers.lean
2020-03-19 15:47:29 -07:00
Leonardo de Moura
f4e06664c6
chore: fix debug build
2020-03-18 21:02:00 -07:00
Leonardo de Moura
eaaaaabc60
feat: allow Lean.Parser.Term.id to be used in binders
...
cc @Kha
2020-03-18 20:54:08 -07:00
Leonardo de Moura
2954f6ad3e
feat: add MetaHasEval instance for TermElabM
...
cc @Kha
2020-03-18 20:09:14 -07:00
Leonardo de Moura
6cac9cab89
feat: cache closed terms at Meta.whnf
2020-03-18 16:47:50 -07:00
Leonardo de Moura
d1e02907e3
chore: register Meta.debug trace option
2020-03-18 16:42:00 -07:00
Leonardo de Moura
cd8bd55311
feat: make sure Char.ofNat can be efficiently reduced in the kernel and WHNF
2020-03-18 16:41:48 -07:00
Leonardo de Moura
736925bbce
feat: allow decide! and nativeDecide! take _ as an argument
...
We use the expected type in this case.
2020-03-18 16:00:06 -07:00
Leonardo de Moura
c8b51b0fb3
feat: elab decide!
2020-03-18 15:48:22 -07:00
Leonardo de Moura
5b350d52ee
feat: elaborate nativeDecide!
2020-03-18 15:39:23 -07:00
Leonardo de Moura
1279057bc6
feat: add mkExpectedTypeHint
2020-03-18 15:34:02 -07:00
Leonardo de Moura
77f20d9737
feat: add nativeDecide! and decide! macros
2020-03-18 15:00:22 -07:00
Leonardo de Moura
6f62986368
feat: add isDefEqStringLit
2020-03-18 11:05:44 -07:00
Leonardo de Moura
01acecf9be
chore: helper predicates
2020-03-18 11:04:43 -07:00
Leonardo de Moura
cee478dc94
feat: MetaM support for expanding String literal at recursors
2020-03-18 10:29:52 -07:00