Commit graph

93 commits

Author SHA1 Message Date
Leonardo de Moura
49c5c5c08a fix: horrible error message due to constApprox := true
The new test `typeMismatch.lean` contains two examples where the error
message was dreadful.
2020-09-29 07:54:48 -07:00
Leonardo de Moura
a0a724ddbd fix: tests and elabDo 2020-09-26 19:12:01 -07:00
Leonardo de Moura
0abca5475f refactor: move ppExpr to IO
@Kha I am also tracking `currNamespace` and `openDecls`.

BTW, I also tried an experiment where I added `currNamespace` and
`openDecls` to `Meta.Context`, but it looked weird. This information
is only needed in the elaborator and pretty printer.
The `PPContext` object should contain everything you need. You
can put `currNamespace` and `openDecls` in the `Delaborator.Context`.
2020-09-15 18:48:21 -07:00
Leonardo de Moura
b02cda0408 chore: move more tests to new frontend 2020-09-11 15:31:14 -07:00
Leonardo de Moura
5ffbada3df feat: add Lean.MonadEnv, Lean.MonadError, and Lean.MonadOptions
This is the first set of polymorphic methods. I will add more later,
and keep reducing code duplication.

cc @Kha
2020-08-22 16:00:43 -07:00
Leonardo de Moura
44f5182f76 chore: fix tests
We have removed `MetaIO`. We use use `CoreM` instead.
2020-08-20 15:56:29 -07:00
Leonardo de Moura
64bcb71b7a chore: fix test 2020-07-14 16:44:02 -07:00
Leonardo de Moura
1612097788 chore: move HashMap and HashSet to Std 2020-06-25 12:46:56 -07:00
Leonardo de Moura
f838b80e03 fix: elaboration functions for parser! and tparser! 2020-06-10 16:42:42 -07:00
Leonardo de Moura
b3a8d417b2 chore: fix test 2020-06-08 16:12:05 -07:00
Leonardo de Moura
9c0bd9dd41 chore: fix tests 2020-05-26 15:05:00 -07:00
Leonardo de Moura
ebc0663b3f chore: fix tests 2020-05-12 15:02:03 -07:00
Leonardo de Moura
21618361b7 refactor: remove ParserKind 2020-01-30 20:56:46 -08:00
Leonardo de Moura
b00c04c491 fix: missing ensureHasType 2020-01-29 16:29:48 -08:00
Leonardo de Moura
bb1a90b24d chore: fix tests 2020-01-28 10:34:27 -08:00
Leonardo de Moura
9f14a45cef fix: Level parser 2020-01-14 18:43:42 -08:00
Leonardo de Moura
f83678f19b chore: fix test 2020-01-11 13:55:31 -08:00
Leonardo de Moura
733ea89000 feat: improve application type mismatch error message 2020-01-09 16:41:27 -08:00
Leonardo de Moura
65370e9322 chore: restore disabled tests 2020-01-08 21:24:01 -08:00
Leonardo de Moura
760f8aa013 chore: fix tests 2020-01-08 21:09:17 -08:00
Leonardo de Moura
9ebf21f2d5 fix: elabConstant 2020-01-08 15:06:18 -08:00
Leonardo de Moura
3de7d6d5c3 fix: remove mvarTypeNotWellFormedInSmallerLCtx
We use `check` recursively instead of `isWellFormed`.

@kha This was the last bug for the repro
```
```
This example works now, but I am sure there are many other bugs.
2020-01-07 16:56:10 -08:00
Leonardo de Moura
2ce2610c0a feat: add compileDecl
cc @kha
2020-01-07 16:38:41 -08:00
Leonardo de Moura
24f1479758 chore: remove workaround 2020-01-06 16:44:08 -08:00
Leonardo de Moura
20c0a63908 feat: add support for optParam 2020-01-06 16:41:48 -08:00
Leonardo de Moura
bccaaa7af0 fix: bug at lit_type binding
cc @kha
2020-01-06 15:44:38 -08:00
Leonardo de Moura
865ef32e91 feat: add parser! and tparser! elaborators
@Kha It is not convenient to use because
1- Coercions have not been implemented
2- Autoparams have not been implemented
3- There is bug the `Expr.lit` type checker
4- The new frontend uses a different mechanism for `export`. So,
`export`s in imported files compiled with the old frontend do not work.

I am working on these issues.
2020-01-06 15:10:35 -08:00
Leonardo de Moura
911e9535b9 feat: elabDefLike 2020-01-06 12:10:08 -08:00
Leonardo de Moura
5be180910f test: add applyAttributes test 2020-01-05 16:27:22 -08:00
Leonardo de Moura
0231841984 feat: applyAttributes 2020-01-05 16:22:46 -08:00
Leonardo de Moura
bc7455e04e refactor: CommandElabM and FrontendM in IO 2020-01-03 18:15:45 -08:00
Leonardo de Moura
e949a052ba feat: elaborate where 2020-01-02 15:01:26 -08:00
Leonardo de Moura
16aff9a182 feat: elaborate have 2020-01-02 14:16:20 -08:00
Leonardo de Moura
9f69991d80 feat: elaborate show notation 2020-01-02 13:30:11 -08:00
Leonardo de Moura
a3675b99e6 feat: add parameter postponeOnError : Bool to synthesizeSyntheticMVarsStep
@Kha: I implemented the option 2 I described on Zulip.
2020-01-02 13:13:58 -08:00
Leonardo de Moura
db96b08257 feat: elaborate anonymous constructor 2020-01-02 10:41:04 -08:00
Leonardo de Moura
0ffd1526bd feat: elaborate subtype 2020-01-02 10:12:19 -08:00
Leonardo de Moura
8f805f5d2f feat: elaborate if-then-else 2020-01-01 16:12:26 -08:00
Leonardo de Moura
cbe65a068e fix: addLValArg 2020-01-01 16:02:55 -08:00
Leonardo de Moura
2ca96cb2b0 feat: include macroStack in error messages 2020-01-01 15:19:04 -08:00
Leonardo de Moura
9d25a45074 feat: elaborate character literals 2020-01-01 14:37:40 -08:00
Leonardo de Moura
b1570ba865 feat: elaborate sortApp 2019-12-30 11:00:13 -08:00
Leonardo de Moura
74741bf613 feat: elaborate explicit universe levels 2019-12-30 10:52:22 -08:00
Leonardo de Moura
bceb02951c feat: better postpone messages 2019-12-22 10:24:22 -08:00
Leonardo de Moura
d53c5a31cb refactor: use PersistentArray to implement MessageLog
Motivation: consistency. Now, Traces and MessageLog use the same datastructure.
2019-12-22 08:11:20 -08:00
Leonardo de Moura
a32fd2e693 feat: implement design documented at 868a217202 2019-12-21 15:53:36 -08:00
Leonardo de Moura
5adadc3158 test: document let issue
TODO: fix issue at `Meta.mkLambda` when some of the free variables are let-declarations.
2019-12-19 17:29:26 -08:00
Leonardo de Moura
93f4184125 feat: elaborate let 2019-12-19 17:00:19 -08:00
Leonardo de Moura
8431303999 test: new test 2019-12-19 14:45:17 -08:00
Leonardo de Moura
bfca7e32e0 fix: try to postpone if function type is not known 2019-12-19 14:20:56 -08:00