Marcus Klaas de Vries
606d66a714
Start moving literal interpretation to the AST (WIP)
2019-01-14 13:56:43 +01:00
Marcus Klaas de Vries
81bc8e4973
don't try to treat arrays and tuples as literals
2019-01-14 13:55:49 +01:00
Marcus Klaas de Vries
1574715be5
Use type variables to determine exact type for ambiguous numeric literals
2019-01-14 13:54:31 +01:00
Marcus Klaas de Vries
5f5dc20d85
Try implementing integer type inference (WIP)
2019-01-14 13:52:57 +01:00
Marcus Klaas de Vries
a6146d35b1
Implement type inference for literals (WIP)
2019-01-14 13:52:55 +01:00
bors[bot]
8caff4e034
Merge #537
...
537: switch to lsp-types r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-14 11:32:28 +00:00
Aleksey Kladov
7e5ab9b78c
switch to lsp-types
2019-01-14 14:32:03 +03:00
bors[bot]
e465032daf
Merge #534
...
534: Add visibility to hover r=matklad a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-01-14 10:34:48 +00:00
Yerkebulan Tulibergenov
5d6cf59f60
add semicolon for block expr in introduce_variable
2019-01-13 18:22:53 -08:00
Yerkebulan Tulibergenov
1538ca3ae5
we don't need to write var_name after block expr?
2019-01-13 18:12:01 -08:00
Yerkebulan Tulibergenov
a996b66cc6
add failing test test_introduce_var_block_expr_second_to_last
2019-01-13 17:59:56 -08:00
Jeremy Kolb
da326dca60
Remove duplication
2019-01-13 20:25:14 -05:00
Jeremy Kolb
2d7b4cc548
Add visibility to hover
2019-01-13 20:08:33 -05:00
bors[bot]
a901cb4f34
Merge #533
...
533: target_selection_range is not nullable in the implementation r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-13 19:44:26 +00:00
Aleksey Kladov
5498a202b6
target_selection_range is not nullable in the implementation
2019-01-13 22:42:42 +03:00
bors[bot]
fa6e4b7978
Merge #532
...
532: fix go to parent module r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-13 19:01:06 +00:00
Aleksey Kladov
077a02271c
fix go to parent module
2019-01-13 21:56:20 +03:00
bors[bot]
d3dfafd393
Merge #530
...
530: Fix some random typos r=matklad a=killercup
Co-authored-by: Pascal Hertleif <killercup@gmail.com>
2019-01-13 18:55:44 +00:00
Pascal Hertleif
f97a9921df
Fix some random typos
2019-01-13 19:54:28 +01:00
bors[bot]
6fb13cd535
Merge #529
...
529: ⬆️ npm r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-13 18:43:40 +00:00
Aleksey Kladov
7642cf5fe7
⬆️ npm
2019-01-13 21:43:13 +03:00
bors[bot]
4209022e5b
Merge #527
...
527: goto defenition works for type-inferred methods r=flodiebold a=matklad
This uses type inference results for `goto method` functionality.
This is achieved by adding another map to `InferenceResult`. I wonder how we should handle this long-term... The pattern seems to be "we are doing some analysis, and we produce some stuff as a by-product, and IDE would like to use the stuff". Ideally, adding an additional bit of info shouldn't require threading it through all data structures.
I kinda like how Kotlin deals with this problem. They have this [`BindingContext`](72e351a0e3/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java (L122)
) thing, which is basically an [`AnyMap`](72e351a0e3/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java (L122)
) of HashMaps.
Deep in the compiler guts, they [record the info](ba6da7c40a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/TracingStrategyForInvoke.java (L70-L75)
) into the map, using a type key, a value key and a value.
Then the IDE [reads this map](ba6da7c40a/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantNotNullExtensionReceiverOfInlineInspection.kt (L64)
) (via a [helper](ba6da7c40a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/util/callUtil.kt (L178-L180)
)). The stuff in between does not know that this type-key exists, unless it inspects it.
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-13 16:59:35 +00:00
Aleksey Kladov
eedc08300c
goto defenition works for type-inferred methods
2019-01-13 18:56:57 +03:00
bors[bot]
8b985b427c
Merge #526
...
526: fix indent caclulation r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-13 15:22:36 +00:00
Aleksey Kladov
884ce4a420
fix indent caclulation
2019-01-13 18:21:23 +03:00
Aleksey Kladov
c46e0300e6
note about performance
2019-01-13 17:13:54 +03:00
bors[bot]
ff09d15124
Merge #520
...
520: Imprement tuple inference r=flodiebold a=h-michael
related #394
I'm sorry I'm late.
I try implementing array inference next.
Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
2019-01-13 13:25:33 +00:00
Hirokazu Hata
139da0841d
Fix tuple test case
2019-01-13 22:23:06 +09:00
bors[bot]
bd2658de26
Merge #522
...
522: Tweak message shown for query fallback r=DJMcNab a=killercup
Small tweak for #518
Co-authored-by: Pascal Hertleif <killercup@gmail.com>
2019-01-13 12:43:35 +00:00
Pascal Hertleif
7f16f922da
Tweak message shown for query fallback
...
Small tweak for #518
2019-01-13 13:32:52 +01:00
Hirokazu Hata
6e73cc89b6
Implement tuple inference
2019-01-13 21:10:01 +09:00
bors[bot]
9f2072d45f
Merge #521
...
521: refresh docs r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-13 12:04:33 +00:00
Aleksey Kladov
04657292e0
refresh docs
2019-01-13 15:04:05 +03:00
Hirokazu Hata
6efda8f6ce
Update TUPLE_EXPR grammar
2019-01-13 21:04:03 +09:00
Hirokazu Hata
829f668bd7
Add infer tuple test
2019-01-13 21:04:03 +09:00
Aleksey Kladov
afe5f26239
tweak readme
2019-01-13 13:51:26 +03:00
bors[bot]
0199572a3d
Merge #517 #518
...
517: gracefully handle cycles in crate graph r=matklad a=matklad
518: Add an explanatory message when we use the Query fallback r=matklad a=DJMcNab
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/269 .
There is no good way to explain it for go_to_def, so I've just fallen back on to_vec.
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
2019-01-13 10:41:47 +00:00
Aleksey Kladov
77f67ca7e2
gracefully handle cycles in crate graph
...
rust-lang/rust has absolutely weird setup with rustc-workspace-shim,
which leads to real cycles.
2019-01-13 13:39:48 +03:00
bors[bot]
ff3d91bb0c
Merge #519
...
519: support ref-patterns r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-13 10:36:30 +00:00
Aleksey Kladov
8e554ea5fa
support ref-patterns
2019-01-13 13:36:06 +03:00
DJMcNab
a53c5de1fd
Add an explanatory message when we use the Query fallback
2019-01-13 10:31:37 +00:00
bors[bot]
a2659abed8
Merge #513
...
513: Add bench runnable and code lens r=matklad a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-01-13 07:59:26 +00:00
bors[bot]
883f1fc78a
Merge #514
...
514: npm fix run r=matklad a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-01-13 07:53:39 +00:00
bors[bot]
40686722ba
Merge #515
...
515: Fix typos r=matklad a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-01-13 06:58:06 +00:00
Jeremy Kolb
ecf9c203ed
Fix typos
2019-01-12 20:40:30 -05:00
Jeremy Kolb
2a1cb52c99
npm fix run
2019-01-12 18:49:07 -05:00
Jeremy Kolb
5d273f10cd
Add bench runnable and code lens
2019-01-12 18:40:54 -05:00
bors[bot]
eb931c0d9e
Merge #505
...
505: Inherent methods r=matklad a=flodiebold
This adds resolution, type checking and completion for inherent methods.
The main open question here is the caching, I think. I'm not sure whether we should be caching method resolutions in a more fine grained way (currently we just build a hash map of types -> impl blocks, and iterate through all potential impl blocks when looking for a method).
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-12 21:18:14 +00:00
Florian Diebold
1ed7fbfc1b
args -> params
2019-01-12 21:58:16 +01:00
Florian Diebold
5db5f5cc1d
Small improvements from review comments
2019-01-12 21:51:56 +01:00