Commit graph

5854 commits

Author SHA1 Message Date
Leonardo de Moura
21587ff19b chore: move tests to new frontend 2020-10-23 16:18:52 -07:00
Leonardo de Moura
8cb1ff206c chore: move tests to new frontend 2020-10-23 14:07:26 -07:00
Leonardo de Moura
3de97ddc27 feat: run linters in the new frontend 2020-10-23 14:04:28 -07:00
Leonardo de Moura
8c03075e58 feat: improve function expected error message 2020-10-23 06:52:51 -07:00
Leonardo de Moura
f339efa100 feat: improve invalid named argument error message 2020-10-23 06:47:07 -07:00
Leonardo de Moura
40578d6d24 test: add explicit motive test 2020-10-23 06:00:51 -07:00
Leonardo de Moura
ff3d9bfbdf chore: fix test output 2020-10-23 05:43:16 -07:00
Leonardo de Moura
a7116b44c1 test: add new subst tests 2020-10-23 05:39:25 -07:00
Leonardo de Moura
474f9a3695 chore: fix tests 2020-10-22 17:46:15 -07:00
Leonardo de Moura
7c0b55ec6a chore: fix tests 2020-10-22 17:34:30 -07:00
Leonardo de Moura
de0eb8035f chore: fix test 2020-10-22 16:58:12 -07:00
Leonardo de Moura
c865abb340 refactor: remove MonadRun 2020-10-22 16:30:06 -07:00
Leonardo de Moura
85c955d77f feat: improve notation 2020-10-22 10:35:45 -07:00
Leonardo de Moura
34945dfc1c feat: elaborate notation 2020-10-22 10:20:23 -07:00
Leonardo de Moura
2041277cae fix: field default value with implicit type 2020-10-22 07:02:40 -07:00
Leonardo de Moura
6ca1768957 fix: optional := in the structure command 2020-10-22 04:39:20 -07:00
Sebastian Ullrich
ce96fab8de chore: fix passing additional LEAN(C)_OPTS to make 2020-10-22 12:00:39 +02:00
Sebastian Ullrich
4e74e36331 feat: run initializers on import
Also, refuse to evaluate an `[init]` decl in the same module (since we don't know whether the initialization is
backtrackable) and always use native symbol of a `[builtinInit]` decl
2020-10-22 11:59:55 +02:00
Leonardo de Moura
ea829b75c0 chore: remove coercions for old frontend 2020-10-21 17:37:35 -07:00
Leonardo de Moura
b555307f06 chore: move to new frontend 2020-10-21 16:35:50 -07:00
Leonardo de Moura
7111eb4d79 chore: move to new frontend 2020-10-21 13:30:43 -07:00
Leonardo de Moura
3e9c5e1653 chore: move to new frontend 2020-10-21 08:43:47 -07:00
Leonardo de Moura
192d45d867 chore: fix tests 2020-10-20 16:15:30 -07:00
Leonardo de Moura
ddbca07a0f chore: fix test output 2020-10-20 15:13:38 -07:00
Leonardo de Moura
35cf2f3d9f feat: use withSynthesize when elaborating the type of a type ascription 2020-10-20 15:12:54 -07:00
Leonardo de Moura
a052446414 feat: simplify decide! and nativeDecide! macros 2020-10-20 15:08:16 -07:00
Leonardo de Moura
27205ddff7 chore: move to new frontend 2020-10-20 09:33:50 -07:00
Leonardo de Moura
dc6305604b chore: fix test 2020-10-20 09:33:50 -07:00
Leonardo de Moura
fac2849e50 feat: forIn for PersistentArray 2020-10-20 09:33:50 -07:00
Leonardo de Moura
702ceb7a3f fix: return optional result
cc @Kha
2020-10-20 09:33:50 -07:00
Leonardo de Moura
c7efb1d37d fix: do notation else if
The following `do` block
```lean
if c_1 then
  action_1
else
  if cond_2 then
    action_2
  action_3
```
was being being parsed as
```lean
if c_1 then
  action_1
else if cond_2 then
  action_2
action_3
```

cc @Kha
2020-10-19 14:29:31 -07:00
Leonardo de Moura
437f4670ed fix: expand doIf notation before lifting nested methods 2020-10-19 11:32:51 -07:00
Leonardo de Moura
e54a207986 refactor: provide Options to lean_eval_const
add `ImportM` monad for `addImportedFn`

cc @Kha
2020-10-19 10:21:38 -07:00
Leonardo de Moura
7bfa39ae45 fix: for .. in .. do notation and universe constraints
We use `MProd` instead of `Prod` to group values when expanding the
`do` notation. `MProd` is a universe monomorphic product.
The motivation is to generate simpler universe constraints in code
that was not written by the user but generated by the `do` macro.
Note that we are not really restricting the macro power since the
`HasBind.bind` combinator already forces values computed by monadic
actions to be in the same universe.

The new test cannot be compiled without this modication.
2020-10-18 18:05:00 -07:00
Leonardo de Moura
9d36d91b84 chore: add Elab.command trace class 2020-10-18 16:35:08 -07:00
Leonardo de Moura
5402ea88a2 feat: add withNestedTraces 2020-10-18 16:31:01 -07:00
Leonardo de Moura
3b8c4ada75 chore: fix tests 2020-10-18 12:27:46 -07:00
Leonardo de Moura
45e1300414 fix: nested structural recursion 2020-10-18 10:38:51 -07:00
Leonardo de Moura
762073a7cb chore: update stage0 2020-10-18 08:22:30 -07:00
Leonardo de Moura
f5a16bc8f0 fix: better support for constraints of the form ?m a =?= ?m b 2020-10-17 16:29:27 -07:00
Leonardo de Moura
aeac85dadb chore: cleanup 2020-10-17 09:09:30 -07:00
Leonardo de Moura
b2bc2d2775 feat: improve field notation argument search
@Kha the new test may look exoteric, but it reflects an actual
instance in our code base, and the old frontend supports it.
Not sure whether we should keep it or not.
2020-10-16 14:32:03 -07:00
Leonardo de Moura
65abb119f5 chore: move to new frontend 2020-10-16 11:57:19 -07:00
Leonardo de Moura
dd4ae81774 chore: move to new frontend 2020-10-16 09:16:33 -07:00
Leonardo de Moura
8735820b49 fix: anonymous constructor too restrictive
We should support (recursive) inductive datatypes that have only one
constructor. We use this feature in the current `src/Lean` code base.
2020-10-16 07:58:47 -07:00
Leonardo de Moura
63e982768a feat: expand nested dos 2020-10-15 17:11:50 -07:00
Leonardo de Moura
827625a377 perf: add temporary hack for performance issue
The compiler frontend implemented in C++ is eagerly inlining local
functions. The new test would take an absurd amount of time without
the new hack.
We remove this hack when we re-implement the compiler frontend in Lean.
2020-10-15 13:37:29 -07:00
Leonardo de Moura
908e5f7acd fix: elabDiscrsWitMatchType 2020-10-15 11:00:33 -07:00
Leonardo de Moura
bdaf648667 fix: synthesizeSyntheticMVarsNoPostponing at elabMatch 2020-10-15 10:44:16 -07:00
Sebastian Ullrich
b0df2be65c chore: remove old pretty printer 2020-10-15 12:04:55 +02:00