Leonardo de Moura
7e0d76aff0
fix: losing local instances at assertAfter
...
closes #270
2021-01-15 19:30:03 -08:00
Leonardo de Moura
f73eb1246a
feat: add pp.safe_shadowing
...
When `pp.safe_shadowing` is set to true, we still use the
suggested name if the "body" does not contain a free variable with the
suggested name. This is the approach used in Lean 3, and I think it
improved the result in all affected tests.
The implementation was simple. The only nasty case was `delabAppMatch`.
The main motivation for this feature was hovering information such as
```lean
f : {α_1 : Type} → α_1 → α_1
```
when hovering over the `f` at
```lean
def g (α : Type) (a : α) :=
f a
```
With `safe_shadowing`, we get the nicer
```lean
f : {α : Type} → α → α
```
cc @Kha
2021-01-15 18:53:25 -08:00
Leonardo de Moura
dcc2283426
fix: refineCore
...
closes #269
2021-01-15 17:03:40 -08:00
Leonardo de Moura
58d51bc764
feat: add FieldInfo
2021-01-15 15:01:45 -08:00
Leonardo de Moura
0672247ce8
chore: make comments VS Code friendly
2021-01-15 13:53:37 -08:00
Wojciech Nawrocki
d7c201a2d4
chore: minor hover code cleanup
2021-01-15 13:29:22 -08:00
Wojciech Nawrocki
46e9d2533d
fix: resolving French-quoted field names
2021-01-15 13:29:22 -08:00
Wojciech Nawrocki
af04c66e22
chore: comment style in Init.String.Basic
2021-01-15 13:29:22 -08:00
Wojciech Nawrocki
f3ab908888
fix: substring APIs
2021-01-15 13:29:22 -08:00
Sebastian Ullrich
fa7e679c73
feat: hover: use syntax highlighting
2021-01-15 13:29:22 -08:00
Wojciech Nawrocki
310a2ab6a3
feat: minimal hovers MVP
2021-01-15 13:29:22 -08:00
Wojciech Nawrocki
a711ccc0fd
chore: tail-recursive JSON printing
2021-01-15 13:29:22 -08:00
Wojciech Nawrocki
cba3d69e78
feat: enable info trees in server
2021-01-15 13:29:22 -08:00
Wojciech Nawrocki
5a46f43b56
fix: elab cancellation on server exit
2021-01-15 13:29:22 -08:00
Leonardo de Moura
223a5d5ded
fix: bug at isDefEqOffset
...
closes #268
2021-01-15 13:08:37 -08:00
Leonardo de Moura
ae60360d7a
feat: add resolveName' which produces Syntax with position information for each field
2021-01-15 11:19:01 -08:00
Sebastian Ullrich
021a823f49
feat: add option printMessageEndPos
2021-01-15 16:27:59 +01:00
Sebastian Ullrich
d1ff0991f4
fix: copy position for identifiers in quotations, not just for atoms
2021-01-15 16:27:59 +01:00
Andrew Kent
4f6bb1feb6
feat: add Float.ofInt
2021-01-15 15:45:28 +01:00
Sebastian Ullrich
dc77c45787
fix: mvar check trace message
2021-01-15 14:34:06 +01:00
Sebastian Ullrich
720f06d251
fix: interpreted bracketedBinder.quot
2021-01-15 14:34:06 +01:00
Leonardo de Moura
6a39c65bd2
feat: improve match error message
2021-01-14 14:58:34 -08:00
Leonardo de Moura
4752c56fe8
feat: improve range of missing cases: ... error message
...
@Kha I added the helper combinator `withHeadRefOnly x`. I executes `x`
using the head token of the current `ref` as the new `ref`.
2021-01-14 14:48:53 -08:00
Leonardo de Moura
791388400b
feat: improve do error messages
...
cc @Kha @Vtec234
2021-01-14 14:18:56 -08:00
Leonardo de Moura
25c9727a92
feat: add TermInfo for LVal
...
@Vtec234 Added the missing info.
Given
```lean
def f3 (s : Nat × Array (Array Nat)) : Array Nat :=
s.2[1].push s.1
```
We produce the following `InfoTree` for the body (originally at line 30)
```
Array.push (Array.getOp s.snd 1) s.fst : Array Nat @ ⟨30, 2⟩-⟨30, 17⟩
s : Nat × Array (Array Nat) @ ⟨30, 2⟩-⟨30, 3⟩
Prod.snd : {α β : Type} → α × β → β @ ⟨30, 4⟩-⟨30, 5⟩
Array.getOp : {α : Type} → [inst : Inhabited α] → Array α → Nat → α @ ⟨30, 5⟩-⟨30, 6⟩
1 : Nat @ ⟨30, 6⟩-⟨30, 7⟩
Array.push : {α : Type} → Array α → α → Array α @ ⟨30, 9⟩-⟨30, 13⟩
s.fst : Nat @ ⟨30, 14⟩-⟨30, 17⟩
s : Nat × Array (Array Nat) @ ⟨30, 14⟩-⟨30, 15⟩
Prod.fst : {α β : Type} → α × β → α @ ⟨30, 16⟩-⟨30, 17⟩
```
2021-01-14 12:19:21 -08:00
Leonardo de Moura
fb52ec8ef5
feat: store binder information in the InfoTree
...
@Vtec234 I am storing the binder information using `TermInfo`.
If it helps, I can add a custom `Info` constructor.
Example: `| Info.ofBinderInfo (i : BinderInfo)`.
2021-01-14 12:19:21 -08:00
Leonardo de Moura
4d1097327c
feat: store ref syntax at LVal
2021-01-14 12:19:21 -08:00
Christian Pehle
225fae9dc2
feat: add shiftLeft and shiftRight for UInt16 and UInt8
...
The same operations are implemented for UInt32, UInt64 and USize
already.
2021-01-14 15:30:35 +01:00
Leonardo de Moura
bfc1a16c02
chore: adjust instance param order
2021-01-13 18:31:41 -08:00
Leonardo de Moura
74a9331571
feat: use left-to-right resolution
2021-01-13 16:33:30 -08:00
Leonardo de Moura
8d9339a856
feat: improve error message position for termination check failures
2021-01-13 10:59:28 -08:00
Leonardo de Moura
e2773113a9
feat: add Float.neg and casts
2021-01-13 10:26:45 -08:00
Leonardo de Moura
b3703739af
chore: internal panic meesage
2021-01-13 10:26:25 -08:00
Leonardo de Moura
b6bb31a131
feat: "compile" 'extern' axioms
2021-01-13 09:43:25 -08:00
Leonardo de Moura
f6e5b13591
feat: "implement" sorry using panic
2021-01-13 09:43:25 -08:00
Leonardo de Moura
3ca0aef098
feat: generate warning when sorry is used
2021-01-13 09:43:25 -08:00
Sebastian Ullrich
a199f35330
fix: leanpkg: do not rely on PATH
2021-01-13 16:39:00 +01:00
Sebastian Ullrich
3a9658b91f
chore: obsolete comment
2021-01-13 16:39:00 +01:00
Leonardo de Moura
fdc0f906f4
feat: improve error message position for compiler errors
2021-01-12 17:10:11 -08:00
Leonardo de Moura
9f7435b5be
chore: cleanup Message.toString
2021-01-12 09:57:46 -08:00
Sebastian Ullrich
74c2d1dca9
chore: remove io_state & abstract_type_context
2021-01-12 09:51:14 -08:00
Sebastian Ullrich
4278480ea3
chore: remove io_state_stream
2021-01-12 09:51:14 -08:00
Sebastian Ullrich
79abd5fec6
chore: remove C++ messages
2021-01-12 09:51:14 -08:00
Sebastian Ullrich
a6c319a25c
chore: remove message_builder from time_task
2021-01-12 09:51:14 -08:00
Sebastian Ullrich
1cb34604cd
chore: remove ios & message from tracing
2021-01-12 09:51:14 -08:00
Sebastian Ullrich
b2e42a3ea6
chore: remove --json option
2021-01-12 09:51:14 -08:00
Sebastian Ullrich
7282470f24
fix: Message.toString: use same formatting as C++ code
2021-01-12 09:51:14 -08:00
Leonardo de Moura
b6abf19656
fix: unfold abbreviations only
...
For example, we should not reduce types of the form `let x := ...; ...`
2021-01-12 08:11:04 -08:00
Leonardo de Moura
c1f3c724e1
fix: missing alternative
2021-01-12 07:44:31 -08:00
Leonardo de Moura
b5fdc5e364
fix: expand abbreviations at isClass?
2021-01-12 06:56:23 -08:00