Commit graph

1514 commits

Author SHA1 Message Date
Leonardo de Moura
65aafc070c chore: remove mkInternalSubobjectFieldName hack 2021-08-03 12:05:10 -07:00
Daniel Selsam
6940166db4 chore: rebase and rm rawPos 2021-08-03 09:13:18 +02:00
Daniel Selsam
89364b802b feat: top-down heuristic delaboration 2021-08-03 09:13:18 +02:00
Leonardo de Moura
d864afae91 feat: private fields
closes #418
2021-08-02 20:20:21 -07:00
Leonardo de Moura
90047e73e8 feat: cache structure parent names 2021-08-02 18:58:00 -07:00
Leonardo de Moura
cfb7e27b87 fix: isStructure vs isStructureLike 2021-08-02 18:54:19 -07:00
Leonardo de Moura
635bc78d72 feat: use structure extension to implement Structure.lean 2021-08-02 18:03:20 -07:00
Leonardo de Moura
1ca62e21fd feat: add environment extension for storing structure field information 2021-08-02 16:17:35 -07:00
Leonardo de Moura
bba9353619 fix: make sure isDefEqOffset does not expose kernel nat literals
This issue is similar to a bug where `isDefEqOffset` was exposing
`Nat.add` when processing `HAdd.hAdd`.

Fixes #561
The example at issue #561 is now working, but we may have other places
where raw literals are being accidentally exposed.
2021-08-02 11:27:00 -07:00
Leonardo de Moura
9e4582a7d0 fix: fixes #593 2021-08-02 10:46:12 -07:00
Leonardo de Moura
89e333ab52 chore: move import Lean.Elab.Open 2021-08-02 10:13:35 -07:00
Wojciech Nawrocki
a937fa26ba chore: fewer explicit types 2021-08-01 09:58:44 +02:00
Wojciech Nawrocki
f51b80060d feat: generic tagged Format 2021-08-01 09:58:44 +02:00
Sebastian Ullrich
32bea73708 fix: ensure hygiene of double-quoted names
Fixes #586
2021-07-30 07:17:50 -07:00
Sebastian Ullrich
2833c61a60 fix: respect preresolved names at resolveConst*
This makes sure we can properly quote e.g. `deriving` clauses and avoids
a suspicious `eraseMacroScopes` call (though not at `Elab.Syntax`, since
categories do not have to be declaration names)
2021-07-30 07:17:50 -07:00
Leonardo de Moura
51e03837f5 fix: exact and refine succeed if they produce no new metavariables
closes #492
2021-07-27 18:30:14 -07:00
Leonardo de Moura
6d05daf73b feat: add flag for allowing synthetic opaque mvars to be assigned at isDefEq
See issue #492
TODO: add a mechanism for detecting new metavariables.
2021-07-27 17:58:08 -07:00
Leonardo de Moura
3f22d5f624 feat: take auto params into account in the structure instance notation
closes #461
2021-07-27 15:49:23 -07:00
Leonardo de Moura
56e247763f fix: scope of the auto param at fields 2021-07-27 15:22:51 -07:00
Leonardo de Moura
0ccd110eb4 feat: elaborate Term.binderTactic at structure declarations 2021-07-27 14:49:23 -07:00
Leonardo de Moura
1a62826107 chore: cleanup 2021-07-27 12:41:26 -07:00
Leonardo de Moura
714cadfb31 fix: bug at structure instance notation
It was exposed by the second example at #461.
2021-07-27 11:56:33 -07:00
Wojciech Nawrocki
43190e0e63 feat: FromToJson for recursive inductives 2021-07-24 10:47:38 +02:00
Wojciech Nawrocki
9a5cdaf506 chore: address review 1 2021-07-24 10:45:28 +02:00
Wojciech Nawrocki
d716bf0d96 fix: preserve lifted CoreM traces 2021-07-24 10:45:28 +02:00
Wojciech Nawrocki
4a3c172ac9 feat: parametrised deriving handlers 2021-07-24 10:45:28 +02:00
Sebastian Ullrich
dc3d94ff61 fix: check arity in notation unexpander
Fixes #469
2021-07-22 16:59:19 +02:00
Sebastian Ullrich
98634b5554 fix: $(_):ident is not an infallible pattern 2021-07-22 16:52:06 +02:00
Sebastian Ullrich
7e317d23db feat: term info on where declarations 2021-07-19 13:24:59 -07:00
Sebastian Ullrich
b76dd1a8e3 feat: go-to-definition for local variables 2021-07-19 13:24:59 -07:00
Sebastian Ullrich
18becc7d7d fix: plain term goal on binders 2021-07-19 13:24:59 -07:00
Sebastian Ullrich
4a4b4c1ef4 fix: mkAtomFrom: generate synthetic position like other *From functions
Also consistently use binders as reference position for an elided binder type.
Before, type errors were always given extent 1, the length of the
synthetic `_` token.
2021-07-19 13:24:59 -07:00
Sebastian Ullrich
8637220927 fix: make precedence mandatory for mixfix commands
Resolves #577
2021-07-19 13:18:58 -07:00
Wojciech Nawrocki
03699cd5ba feat: uniformly split idents 2021-07-19 09:55:37 +02:00
Wojciech Nawrocki
7aca461a35 fix: hovers on elabFieldName fields 2021-07-19 09:55:37 +02:00
Wojciech Nawrocki
eef413cec8 chore: unused binding in FromToJson 2021-07-15 21:57:55 +02:00
Wojciech Nawrocki
521ed11330 chore: move parseTagged
It should live in Lean.Data.Json.FromToJson because many modules import that but not Lean.Elab.Deriving.FromToJson.
2021-07-12 09:10:29 +02:00
Wojciech Nawrocki
1ba802418b fix: ToJson for single-field constructors 2021-07-08 09:01:06 +02:00
Wojciech Nawrocki
dfcdc57302 feat: go-to for structure fields 2021-07-05 19:42:01 +02:00
Leonardo de Moura
5e694d4b69 fix: fixes #536 2021-06-29 18:24:46 -07:00
Leonardo de Moura
f4a7ffd8c8 chore: fix codebase and tests 2021-06-29 17:14:52 -07:00
Leonardo de Moura
90a79a0b06 chore: remove command universes
Now, `universe` may declare many universes. The goal is to make it
consistent with the `variable` command
2021-06-29 17:01:07 -07:00
Leonardo de Moura
e9b78585c5 refactor: add BuiltinCommand.lean 2021-06-29 16:52:00 -07:00
Sebastian Ullrich
20fa503803 fix: move elabCommand parts that should happen only once into new function 2021-06-29 06:34:15 -07:00
Sebastian Ullrich
a993e0baa0 fix: non-dependent arrow should not extend local context 2021-06-29 06:31:37 -07:00
Leonardo de Moura
e5d4af5e75 refactor: split Syntax.lean 2021-06-28 13:52:04 -07:00
Leonardo de Moura
953dd85c06 chore: avoid inline 2021-06-28 10:17:01 -07:00
Leonardo de Moura
ae6a28af52 chore: remove unnecessary specialize 2021-06-28 10:11:23 -07:00
Leonardo de Moura
8f9fa8d04c refactor: add BuiltinTactic.lean 2021-06-28 10:08:42 -07:00
Leonardo de Moura
712206f80e refactor: add BindersUtil.lean 2021-06-28 08:44:16 -07:00