Sebastian Ullrich
d7733ba662
feat: use leanpkg print-path for worker initialization
2021-01-19 19:06:01 +01:00
Sebastian Ullrich
9c8f360dd3
feat: leanpkg: print-path
2021-01-19 19:06:01 +01:00
Sebastian Ullrich
607d788001
chore: leanpkg: secondary output to stderr
2021-01-19 19:06:01 +01:00
Sebastian Ullrich
35e4f7391a
feat: publish fatal worker error as diagnostic
2021-01-19 19:06:01 +01:00
Sebastian Ullrich
2eb0f58bdd
chore: restart worker only on didChange
...
will otherwise be constantly retriggered by documentSymbol in Emacs
2021-01-19 19:06:01 +01:00
Leonardo de Moura
dc142cff13
test: sizeOf experiments
2021-01-18 17:21:03 -08:00
Leonardo de Moura
f1ed13efff
feat: improve elabMatchAux
...
We now (try to) postpone `match ... with` elaboration when pattern
variables and patterns still contain metavariables before invoking `mkMatcher`.
This improvement makes sure we can elaborate an example submitted by
Daniel Selsam.
Remark: this update may create performance problems since we
backtrack `elabMatchTypeAndDiscrs` and `elabMatchAltView`.
We hope this is not a problem in practice since we use the "quick-check"
`waitExpectedTypeAndDiscrs`. Recall that we could compile Lean
without this commit. So, it suggests cases where we need to postpone
after `elabMatchAltView` are rare.
2021-01-18 15:33:48 -08:00
Leonardo de Moura
6df66bf0ac
feat: generalize observing
...
We can now "observe" any `TermElabM α` action.
2021-01-18 15:10:42 -08:00
Leonardo de Moura
0a6d83127d
chore: cleanup
2021-01-18 11:46:13 -08:00
Leonardo de Moura
711d1754a6
chore: improve error message
...
closes #276
2021-01-17 07:51:08 -08:00
Christian Pehle
066baeccc0
fix: pass (some) cmdline arguments to watchdog and workers
...
Capture some of the command line arguments in an argument
vector, that then gets passed to the watchdog and
subsequently the worker processes. Currently flags like
"-T" and "-j2" are not passed on to the watchdog and
worker processes.
Addresses #246
2021-01-17 15:06:11 +01:00
zygi
65c0c787ef
fix: make Meta.transform use matching aux functions
...
visitForall should probably be used in forallE case, same for lambda
2021-01-17 10:04:33 +01:00
Sebastian Ullrich
4950440014
fix: --run flag
2021-01-17 10:00:17 +01:00
Sebastian Ullrich
fcb1616c20
chore: reduce dependencies
2021-01-16 19:45:45 +01:00
Leonardo de Moura
eb25b97501
fix: pattern variables cannot shadow each other
2021-01-16 08:23:45 -08:00
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
Leonardo de Moura
03eee6f2d5
chore: update stage0
2021-01-15 13:33:25 -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
d7fe05b29d
chore: script to copy .produced.out ~> .expected.out
2021-01-15 16:27:59 +01:00
Sebastian Ullrich
b2b78eb222
test: use printMessageEndPos for leantests
2021-01-15 16:27:59 +01:00
Sebastian Ullrich
021a823f49
feat: add option printMessageEndPos
2021-01-15 16:27:59 +01:00
Sebastian Ullrich
d5ddcacc84
chore: update stage0
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
d2cdef85ea
chore: fix tests
2021-01-14 14:25:41 -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
Sebastian Ullrich
0b146abeb1
chore: CI: don't schedule nightlies on forks
2021-01-14 15:04:45 +01:00
Sebastian Ullrich
5797ee4ab2
chore: CI: try to fix caching on Windows
2021-01-14 14:55:38 +01:00