Aleksey Kladov
2734636c53
update ide_api to new hir
2019-01-24 15:40:52 +03:00
Aleksey Kladov
1754dd9fdd
remove DefKind::Function
2019-01-24 15:31:12 +03:00
Aleksey Kladov
ec7ed054e0
Functions use new id scheme
2019-01-24 15:28:50 +03:00
Aleksey Kladov
a00570d7a3
minor rename
2019-01-24 13:40:36 +03:00
Aleksey Kladov
f1959bbae0
add FunctionId
2019-01-24 13:34:41 +03:00
Aleksey Kladov
3ab1519cb2
Change ids strategy
...
this is a part of larghish hir refactoring which aims to
* replace per-source-root module trees with per crate trees
* switch from a monotyped DedId to type-specific ids
2019-01-24 13:29:19 +03:00
Aleksey Kladov
9fe09db771
encapsulate hir locations
2019-01-24 12:41:08 +03:00
Jeremy Kolb
f87ce73579
Add a comment
2019-01-23 20:13:36 -05:00
Jeremy A. Kolb
30f0736e64
Fix snap
2019-01-23 18:50:46 -05:00
Jeremy A. Kolb
7b548de634
Add a bunch of new documentation to completions
2019-01-23 17:46:14 -05:00
Jeremy A. Kolb
576625f0a1
Add way of getting docs from the code model and use for completion
2019-01-23 16:32:04 -05:00
Jeremy A. Kolb
6a6ce2bc95
Make EnumVariant a DocCommentsOwner
2019-01-23 16:23:21 -05:00
bors[bot]
bf9cd6ee30
Merge #617 #618
...
617: Use npm ci instead of install r=matklad a=h-michael
fix #422
`npm install` is always recreate `package-lock.json`.
So we might use `npm ci` with `install-code`
https://docs.npmjs.com/cli/ci.html#description
618: Add install-lsp subcommand r=matklad a=h-michael
related https://github.com/rust-analyzer/rust-analyzer/pull/617#issuecomment-456914650
Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
2019-01-23 19:15:50 +00:00
Josh Robson Chase
2ffea72f74
More correct raw ident handling
2019-01-23 13:57:17 -05:00
Hirokazu Hata
0dc60e10ac
Use npm ci instead of install
2019-01-24 03:23:15 +09:00
Josh Robson Chase
3b70acad01
Use IDENT for both raw and normal idents
2019-01-23 13:19:49 -05:00
Josh Robson Chase
1cd6d6539a
Add raw idents to lexer and parser
2019-01-23 13:17:41 -05:00
bors[bot]
0b942cbcb0
Merge #615
...
615: Bumpup lsp-types to v0.55.0 r=DJMcNab a=h-michael
https://github.com/gluon-lang/lsp-types/compare/v0.54.0...v0.55.0
Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
2019-01-23 17:51:28 +00:00
Hirokazu Hata
70a35379ab
Fix target_selection_range type
2019-01-24 02:47:30 +09:00
Hirokazu Hata
76d52be1da
Bumpup lsp-types to v0.55.0
2019-01-24 02:47:03 +09:00
Aleksey Kladov
bea75e0943
drop obsolete comment
2019-01-23 20:45:32 +03:00
Aleksey Kladov
59f830d3e8
assign DefIds when lowering
2019-01-23 19:49:11 +03:00
Aleksey Kladov
d4ed25d86f
introduced better typed AstPtr
2019-01-23 18:26:02 +03:00
Aleksey Kladov
e22b6edae5
refactor
2019-01-23 18:09:45 +03:00
Aleksey Kladov
343852d8b2
simiplify
2019-01-23 17:57:41 +03:00
Aleksey Kladov
d853e9b1ef
better names
2019-01-23 17:52:35 +03:00
Aleksey Kladov
7b901f86cd
move SyntaxPtr to ra_syntax
2019-01-23 17:37:10 +03:00
Aleksey Kladov
71b9f06c89
don't insert parens for self methods
2019-01-23 16:21:20 +03:00
Aleksey Kladov
2dbf58c579
move completion item tests closer to the code
...
this is the reason why we need marks: the tests were spread across two
files, because I've forgotten that there were tests already
2019-01-23 16:05:13 +03:00
Aleksey Kladov
45da21672a
generalize marking infrastructure
2019-01-23 15:36:29 +03:00
Aleksey Kladov
28661facf6
⬆️ insta
2019-01-23 15:04:38 +03:00
gfreezy
13d2fd32ab
fix completion bugs
2019-01-23 15:43:47 +08:00
bors[bot]
488326ffa7
Merge #598
...
598: Add function signature to CompletionItem detail r=matklad a=kjeremy
Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2019-01-23 07:27:09 +00:00
Jeremy A. Kolb
a3472f8fe1
Move label from hir to ide_api
2019-01-22 18:20:40 -05:00
Aleksey Kladov
0ba7e2eaeb
ad status command
2019-01-23 01:24:53 +03:00
Jeremy A. Kolb
9582a439e1
Simplify CallInfo label and documentation
2019-01-22 16:28:02 -05:00
Aleksey Kladov
7b28a15202
⬆️ rowan
2019-01-22 23:37:03 +03:00
Erlend Tobiassen
c550c6759d
Add test for placeholder parameters in trait fn defs
2019-01-22 18:46:15 +01:00
Erlend Tobiassen
234b65fd61
Allow placeholder parameters in trait fn defs
2019-01-22 18:33:53 +01:00
Jeremy A. Kolb
070a980224
Add function signature to CompletionItem detail
2019-01-22 10:54:50 -05:00
bors[bot]
595a2f9900
Merge #593
...
593: Docs for completion r=matklad a=kjeremy
The first commit adds documentation support to CompletionItems.
The second one I am unsure about. Is that the right way to add docs for functions? If so should I do something similar for other `hir` types and CompletionItems?
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2019-01-22 15:06:32 +00:00
Jeremy A. Kolb
7c27e6d2b3
Update snaps
2019-01-22 09:51:29 -05:00
Jeremy Kolb
b540451483
Move docs to Function
2019-01-22 08:55:05 -05:00
bors[bot]
9e0abfc0c9
Merge #592
...
592: Allow types to the left of `:` in where predicates r=matklad a=regiontog
Adresses #584
Co-authored-by: Erlend Tobiassen <erlend.tobiassen@gmail.com>
2019-01-22 13:49:33 +00:00
Erlend Tobiassen
84f888e93d
No need for is_type_start
2019-01-22 14:46:06 +01:00
Erlend Tobiassen
9f3d133813
Prefer TYPE_FIRST
2019-01-22 14:36:57 +01:00
Erlend Tobiassen
8198cde13b
Update tests after allowing where predicate to accept types
2019-01-22 14:32:23 +01:00
Aleksey Kladov
cd67fb3ac1
fold macros
2019-01-22 16:26:32 +03:00
Erlend Tobiassen
2b22f5fb43
Optimistically bail out of where clause loop if not at start of a type or lifetime
2019-01-22 13:17:10 +01:00
Jeremy Kolb
b77d780f0e
Thread documentation through FnSignature and CompletionItem
2019-01-21 21:42:37 -05:00
Jeremy Kolb
5d110c0ee2
Teach CompletionItem about documentation
2019-01-21 21:41:39 -05:00
Erlend Tobiassen
1aba42128f
Don't leave a marker hanging without completing it.
2019-01-22 01:25:00 +01:00
Erlend Tobiassen
1059ec74e2
Allow types to the left of : in where predicates.
2019-01-22 01:11:35 +01:00
Aleksey Kladov
49596bbc2b
⬆️ insta
2019-01-22 01:28:57 +03:00
bors[bot]
5a753b39c7
Merge #590
...
590: Use insta for ty tests r=matklad a=flodiebold
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-21 22:16:33 +00:00
Florian Diebold
a252110616
Use insta for ty tests
2019-01-21 22:52:35 +01:00
Florian Diebold
0cfd80422a
Fix .not postfix completion
2019-01-21 22:33:30 +01:00
Florian Diebold
e45f476d56
Fix panic trying to get substs on unknown type
...
Fixes #585 .
2019-01-21 21:42:19 +01:00
bors[bot]
237bb929f4
Merge #582
...
582: Postfix completion r=matklad a=gfreezy
resolved #525
Co-authored-by: gfreezy <gfreezy@gmail.com>
2019-01-21 08:12:14 +00:00
gfreezy
5d1a63c695
postfix completion
2019-01-21 13:19:51 +08:00
gfreezy
77d9611e6b
typos fix
2019-01-21 10:35:18 +08:00
bors[bot]
f133702f72
Merge #574
...
574: refactor completions to use TextEdit instead of InsertText r=matklad a=gfreezy
1. migrate from `insertText` to `TextEdit` from `CompleteItem`
2. use `insta` to test completions
Co-authored-by: gfreezy <gfreezy@gmail.com>
2019-01-20 18:27:23 +00:00
Aleksey Kladov
73836cdbbc
extend selection expands macros and can totally panic
2019-01-20 21:05:01 +03:00
Aleksey Kladov
171f6e6d00
somewhat better name
2019-01-20 21:01:11 +03:00
Aleksey Kladov
1ec1bd8139
make matching brace consistent
2019-01-20 20:59:46 +03:00
Aleksey Kladov
c517696fab
use with_db consistently
2019-01-20 20:55:08 +03:00
Florian Diebold
3c4a4c6ae9
Fix panic on inferring field access on an enum
2019-01-20 18:14:19 +01:00
gfreezy
fd8db14c2f
fix tests
2019-01-20 17:28:10 +08:00
gfreezy
ecc5a2e3df
workaround for trigger character
2019-01-20 13:34:16 +08:00
gfreezy
2a43638052
use a combination of source_change
and text_edit
for CompleteItem
2019-01-20 12:02:00 +08:00
Florian Diebold
5f3509e140
Add an assert
2019-01-19 19:00:36 +01:00
Florian Diebold
969f588025
Generics -> GenericParams
2019-01-19 18:58:04 +01:00
gfreezy
94d96b60f3
refactor to use remove_range
and replace_range
instead of TextEdit
2019-01-20 00:38:34 +08:00
Florian Diebold
9e4b5ecec4
Make generics work in struct patterns
2019-01-19 16:02:06 +01:00
Florian Diebold
d37bb128ef
Collect generic args in struct variant paths as well
2019-01-19 16:02:06 +01:00
Florian Diebold
cc4562ab6e
Collect generic args in type paths
...
E.g. `let x: A<X>` is handled correctly.
2019-01-19 16:02:06 +01:00
Florian Diebold
fa7f9d696f
Make Module impl methods crate-private, update some comments
2019-01-19 16:02:06 +01:00
Florian Diebold
5862542ded
Add AST/HIR for type args in path segments
2019-01-19 16:02:06 +01:00
Florian Diebold
688a45e00b
Implement beginnings of generics
...
- add HIR for generic params
- resolve generic params in type paths
- add substitions for ADTs
- insert type variables for substitutions
2019-01-19 16:02:06 +01:00
Florian Diebold
415cdc5210
Add some tests
2019-01-19 15:49:48 +01:00
gfreezy
64342599ca
ignore unused methods
2019-01-19 22:11:38 +08:00
gfreezy
d08e81cdd8
refactor completions to use TextEdit instead of InsertText
2019-01-19 22:02:50 +08:00
Florian Diebold
573f6f8656
Refactor/simplify path resolution
2019-01-19 14:48:07 +01:00
Marcus Klaas de Vries
fa43ef30f4
Change parsing of struct field patterns
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
bcbfa2cc11
Finish move of StructField for pattern type inference
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
4277f420aa
Replace Expectation by &Ty in infer_pat
method
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
f9a6050034
Move parsing of field pattern lists to the parser (where it belongs)
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
d2769837f1
Move pattern type inference from adt::StructField to core_model_impl (WIP)
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
b5466f3fb3
Address issues flagged in review
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
5027c5d4ee
Fix bug in match arm type unification
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
44e9a9605b
Fixup annotated bindings
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
d48d5b8b6c
Add initial (flawed) implementation of binding annotations
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
9433a108cf
Make pattern inference work w/o proper expecations
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
be1b4034a5
Infer pattern types for lambdas and loops
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
06d16a18f6
Implement match binding type inference and arm unification
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
ac216880f5
Implement unlabeled struct field pattern inference
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
3340807bd2
Get basic struct pattern type inference working!
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
ab5deb7811
Create struct patterns up to the hir level
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
9c2d83a4c8
Add crude implementation of tuplestruct pattern inference
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
3b0de53904
Work on type inference for ADT patterns
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
5648dcd36e
Implement type inference for tuples and refs
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
afaa26636e
Add additional pattern variants
2019-01-19 15:37:25 +03:00
Aleksey Kladov
e13c9188fe
fix the test
2019-01-19 15:37:25 +03:00
Aleksey Kladov
63f7dadc11
rename LoweredImport -> ImportId
2019-01-19 15:37:25 +03:00
Aleksey Kladov
c0aeb5204c
switched to lowerd module
2019-01-19 15:37:25 +03:00
Aleksey Kladov
b93c6bc557
simplify
2019-01-19 15:37:25 +03:00
Aleksey Kladov
789772e8e5
move input module items to the lower module
2019-01-19 15:37:25 +03:00
gfreezy
99e8499957
more idiomatic code
2019-01-19 15:36:58 +03:00
gfreezy
360167db16
prefer inline tests
2019-01-19 15:36:58 +03:00
gfreezy
6ab6d1eaa0
fix comments
2019-01-19 15:36:58 +03:00
gfreezy
5c8cb56506
move rename to a new mod
2019-01-19 15:36:58 +03:00
gfreezy
bc0f79f74a
rename mod
2019-01-19 15:36:58 +03:00
Aleksey Kladov
b82fe73d1a
make token set a const-fn
2019-01-19 15:36:58 +03:00
Aleksey Kladov
b028472481
⬆️ update rust
2019-01-19 15:36:58 +03:00
Aleksey Kladov
a2ca03d10b
⬆️ salsa
2019-01-17 14:11:00 +03:00
Hirokazu Hata
0aedd4fb2f
Add Ty::Array to walk_mut
2019-01-17 00:08:53 +09:00
Hirokazu Hata
f66ca1bd2e
Fix test case invalid syntax
2019-01-16 23:39:14 +09:00
Hirokazu Hata
5c570fa770
Remove unneeded code
2019-01-16 23:39:14 +09:00
Hirokazu Hata
478ce1c8b5
Fix infer array test
2019-01-16 23:37:42 +09:00
Hirokazu Hata
5d3884d5b4
Fix Ty::Array
2019-01-16 23:37:42 +09:00
Hirokazu Hata
2a3262c757
Add infer array test
2019-01-16 23:35:06 +09:00
Hirokazu Hata
d665acbbec
Implement array inference
2019-01-16 23:35:06 +09:00
Hirokazu Hata
4729a1b054
Update ARRAY_EXPR grammar
2019-01-16 23:22:14 +09:00
bors[bot]
d75a0368f5
Merge #536
...
536: Introduce variable semicolon block expr r=matklad a=yerke
Fix for https://github.com/rust-analyzer/rust-analyzer/issues/504
Feels a bit hacky...
Co-authored-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2019-01-16 06:20:09 +00:00
Yerkebulan Tulibergenov
67ddd33598
don't need SEMI any more
2019-01-15 20:29:37 -08:00
Yerkebulan Tulibergenov
de7c0f814c
delete unused fn
2019-01-15 20:28:01 -08:00
Yerkebulan Tulibergenov
4dd7ec94bc
use has_semi
2019-01-15 20:27:15 -08:00
Yerkebulan Tulibergenov
5e35f191fc
add has_semi to ExprStmt
2019-01-15 20:26:46 -08:00
Marcus Klaas de Vries
a2b6d3da30
Implement rudimentary type inference for unary operators
2019-01-16 00:04:39 +01:00
Aleksey Kladov
8338acfd3a
kill last cancelables
2019-01-15 21:17:10 +03:00
Aleksey Kladov
0bb170a277
remove Canceled from impl of ra_ide_api
2019-01-15 21:09:51 +03:00
Aleksey Kladov
05ba45c667
remove Canceled from API impl
2019-01-15 21:02:42 +03:00
Aleksey Kladov
02c3d2f78e
hir is cancelation free
2019-01-15 20:56:06 +03:00
Aleksey Kladov
8ba9c2d4ce
remove Cancelable from type inference
2019-01-15 20:54:18 +03:00
Aleksey Kladov
b871062e32
remove Cancelable from Ty
2019-01-15 20:43:37 +03:00
Aleksey Kladov
fafcd103d2
remove Cancelable from ids
2019-01-15 19:18:52 +03:00
Aleksey Kladov
490112dea1
remove Cancelable from nameres
2019-01-15 19:15:01 +03:00
Aleksey Kladov
18e9a710cd
remove Cancelable from fn_scopes
2019-01-15 19:04:49 +03:00
Aleksey Kladov
040a622c52
remove Cancelable from funciton body
2019-01-15 19:01:59 +03:00
Aleksey Kladov
f1367e0370
remove Cancelable from navigation target
2019-01-15 18:50:16 +03:00
Aleksey Kladov
9dd4099d93
remove Cancelable from static&const API
2019-01-15 18:45:01 +03:00
Aleksey Kladov
9446be2999
remove Cancelable from adt API
2019-01-15 18:43:25 +03:00
Aleksey Kladov
8af9a18660
remove Cancelable from Crate API
2019-01-15 18:33:26 +03:00
Aleksey Kladov
c159e414b4
remove Cancelable from Module API, part 2
2019-01-15 18:30:58 +03:00
Aleksey Kladov
ca52cf1ecd
remove Cancelable from Module API
2019-01-15 18:26:29 +03:00
Aleksey Kladov
fb012e5c1e
remove cancelable from symbols
2019-01-15 18:19:09 +03:00
Aleksey Kladov
11f3c8afb2
remove Cancelable from source binders
2019-01-15 18:13:49 +03:00
Aleksey Kladov
68ff52566d
remove Cancelable from module_tree_query
2019-01-15 17:55:15 +03:00
Aleksey Kladov
fedd320cf2
check_canceled does not return Result
2019-01-15 15:45:48 +03:00
Aleksey Kladov
dd45697e53
update salsa
2019-01-15 15:06:45 +03:00
bors[bot]
f6f2e89e7a
Merge #546
...
546: replace `assert_dbg_eq` with Insta r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-15 11:18:56 +00:00
Aleksey Kladov
d79a9b17dc
switch to insta for testing
2019-01-15 14:18:24 +03:00
Yerkebulan Tulibergenov
4149285bf5
add semi only if it wasn't present before or after
2019-01-15 01:21:04 -08:00
bors[bot]
e8e82ce032
Merge #485
...
485: Add type inference for a bunch of primitives r=flodiebold a=marcusklaas
This PR adds inference for `&str`, `&[u8]`, `char`, `bool`, floats and integers. For floats and integers it uses type variables to infer the exact type, i.e. `u32`, from context when it's not annotated explicitly.
I'm not quite happy with the implementation yet, but I think it mostly works now.
Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-14 20:58:20 +00:00
Marcus Klaas de Vries
37ba237e66
Address issues found in review
2019-01-14 21:52:08 +01:00
Marcus Klaas de Vries
d67eabb512
Fix type inference for raw (byte) strings
2019-01-14 20:56:14 +01:00
Marcus Klaas de Vries
2689348772
Give literal expression default values for now
2019-01-14 19:46:10 +01:00
Marcus Klaas de Vries
a9a6a50c75
Fixup tests
2019-01-14 19:30:21 +01:00
Aleksey Kladov
db43b44f71
update cargo_metadata
2019-01-14 16:15:25 +03:00
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
Aleksey Kladov
7e5ab9b78c
switch to lsp-types
2019-01-14 14:32:03 +03: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
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
Pascal Hertleif
f97a9921df
Fix some random typos
2019-01-13 19:54:28 +01:00
Aleksey Kladov
eedc08300c
goto defenition works for type-inferred methods
2019-01-13 18:56:57 +03:00
Aleksey Kladov
884ce4a420
fix indent caclulation
2019-01-13 18:21:23 +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
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
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
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
Jeremy Kolb
ecf9c203ed
Fix typos
2019-01-12 20:40:30 -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
bors[bot]
e56072bfa3
Merge #500
...
500: Code lens support for running tests r=matklad a=kjeremy
Supports running individual and mod tests.
I feel like this kind of abuses the `Runnables` infrastructure but it works. Maybe later on down the line we should introduce a struct that is really just a tuple of binary, arguments, and environment and pass that back to the client instead. `run_single.ts` is just a paired down version of `runnables.ts` and there is duplication because I think run_single will probably change independent of runnables.
Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-01-12 18:56:11 +00:00
Jeremy Kolb
72d48b08fb
Move CargoTargetSpec
and friends to cargo_target_spec module
2019-01-12 13:00:58 -05:00
bors[bot]
8033c81acc
Merge #507
...
507: Fix handling of attributes in positional field lists r=matklad a=DJMcNab
First reported by @max-frai. This allows us to properly handle crates using e.g. `#[Derive(fail)]` with `#[fail(cause)]`, among other cases.
Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
2019-01-12 15:47:48 +00:00
DJMcNab
0b9e462ab0
Fix handling of attributes in positional field lists
2019-01-12 15:42:12 +00:00
DJMcNab
c38432c0bd
Use --force when installing the VSIX.
2019-01-12 15:00:03 +00:00
Florian Diebold
d0bdaa6c00
Complete inherent methods
2019-01-12 15:01:27 +01:00
Florian Diebold
082ef52bcb
Implement basic inherent method resolution
2019-01-12 15:01:19 +01:00
Jeremy Kolb
f42f70b1d5
Switch hover to use MarkupContent
...
MarkedString is deprecated
2019-01-11 21:45:16 -05:00
Florian Diebold
1212e59bee
Fix assertion error in unification (hopefully)
...
Currently, all types that we handle during inference need to be resolved as far
as possible at the time. It's maybe too brittle of an invariant; I need to think
how we can do this better. This should fix #484 though, I hope (if
it's the same case as I managed to reproduce).
2019-01-11 22:59:00 +01:00
Jeremy A. Kolb
faf0037635
Code lens support for running tests
2019-01-11 15:16:55 -05:00
Aleksey Kladov
f60153ee9e
warn louder on mising sysroot
2019-01-11 20:55:56 +02:00
Aleksey Kladov
f193fbcbae
actually produce missing def kinds
2019-01-11 21:02:12 +03:00
Aleksey Kladov
19136cde00
uncopypaste def sources
2019-01-11 20:43:10 +03:00
Aleksey Kladov
0f9c350812
add missing def kinds
2019-01-11 20:28:10 +03:00
Aleksey Kladov
2d3940d0ab
rename TreePtr -> TreeArc
...
This is much clearer about the semantics
2019-01-11 19:59:06 +03:00
bors[bot]
aad1bf877e
Merge #496
...
496: Include two element ranges into the nav. r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-11 15:35:41 +00:00
Aleksey Kladov
f23a13bfa7
kill NavTarget ptr
2019-01-11 18:35:04 +03:00
Aleksey Kladov
dda916bc4d
fix tests
2019-01-11 18:32:22 +03:00
Aleksey Kladov
4089db1e0d
prioritize event handing over indexing
...
If we index gazillion libraries simultaneously, we fill the threadpool
and so the main loop fails to turn, although there isn't really any
significant blocking inside the loop itself.
2019-01-11 17:08:49 +03:00
Aleksey Kladov
8a5f74a24f
use location link in goto def
2019-01-11 16:06:22 +03:00
Aleksey Kladov
3aaf20bd6e
return ref ranges from gotodef
2019-01-11 16:06:08 +03:00
Aleksey Kladov
f9ed8d4d23
envapsulate navigation target better
2019-01-11 16:01:57 +03:00
Aleksey Kladov
1d3d05d5d7
simplify
2019-01-11 16:01:57 +03:00
Aleksey Kladov
a5dd04078e
reshuffle nones
2019-01-11 16:01:57 +03:00
Aleksey Kladov
7b14377965
refactor nav target
2019-01-11 16:01:57 +03:00
Aleksey Kladov
df6bbc6e42
Make from_syntax private
2019-01-11 16:01:57 +03:00
Aleksey Kladov
2aa125251e
move nav to a separate file
2019-01-11 16:01:57 +03:00
Aleksey Kladov
f848aa97ab
group feature modules
2019-01-11 16:01:57 +03:00
Aleksey Kladov
a1b661faec
fine grained on typed tests
2019-01-11 15:48:06 +03:00
Aleksey Kladov
d9e70e3160
fix on-type offset
2019-01-11 15:05:40 +03:00
Aleksey Kladov
4aa632761f
make on dot typed actually work
2019-01-11 14:57:19 +03:00
Aleksey Kladov
66d7adf1cb
force serde in ra_syntax
2019-01-11 13:21:18 +03:00
Aleksey Kladov
4bf6b91b9d
minor
2019-01-11 00:51:34 +03:00
Aleksey Kladov
cd00158b1d
wire sysroot into crate graph
2019-01-11 00:51:34 +03:00
Aleksey Kladov
e35374ec7c
special case std
2019-01-11 00:51:34 +03:00
Aleksey Kladov
8852408bfb
use arena for sysroot
2019-01-11 00:51:34 +03:00
Aleksey Kladov
66fba88534
split module
2019-01-11 00:51:34 +03:00
Aleksey Kladov
e8923713c5
add sysroot boilerplate
2019-01-11 00:51:34 +03:00
bors[bot]
b6bc55f542
Merge #490
...
490: dont depend on tools from lsp-server r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-10 21:46:56 +00:00
Aleksey Kladov
4196b65f21
dont depend on tools from lsp-server
2019-01-11 00:46:32 +03:00
Florian Diebold
a6590ce231
Use name resolution for goto definition
2019-01-10 21:32:54 +01:00
bors[bot]
dc2a8d5acc
Merge #470
...
470: Type inference for enum variants r=flodiebold a=marcusklaas
Opened a new PR instead of https://github.com/rust-analyzer/rust-analyzer/pull/461 . Totally botched that one.
I think I resolved all the issues mentioned there.
Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-10 19:12:40 +00:00
bors[bot]
a95536301c
Merge #488
...
488: switch CargoWorkspace to arena r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-10 18:59:40 +00:00
Aleksey Kladov
faa1d35cbc
dont complete () if they are already there
2019-01-10 21:38:04 +03:00
Aleksey Kladov
cbeaa541aa
switch CargoWorkspace to arena
2019-01-10 21:26:43 +03:00
DJMcNab
afdb569902
Fix handling of where clauses in tuple structs
2019-01-10 18:21:01 +00:00
Aleksey Kladov
f83485839b
better change visibility assist
...
* don't add visibility before #derive
* suggest changing pub(crate) into pub
2019-01-10 19:18:15 +03:00
bors[bot]
acd90bc33b
Merge #482
...
482: fix code duplication r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-10 15:32:34 +00:00
Aleksey Kladov
a0c978cd0c
fix code duplication
2019-01-10 18:32:02 +03:00
Aleksey Kladov
3ca76c2039
move join_lines to a separate module
2019-01-10 17:50:49 +03:00
Aleksey Kladov
32fa084c07
introduce marking infrastructure for maintainable tests
...
This also fixes a particular edge case in name resolution.
2019-01-10 16:45:09 +03:00
Marcus Klaas de Vries
e78286c8e8
Save variant names in EnumData to reduce needless queries
...
We already have their names when anyway, and when in all (current)
situations where we're interested in an Enum's variants, we want
their names.
2019-01-10 14:43:01 +01:00
Marcus Klaas de Vries
978de5cf8b
Implement type inference for enum variants
2019-01-10 14:32:56 +01:00
bors[bot]
aca14c591f
Merge #475
...
475: Show types of fields in completion r=matklad a=matklad
![image](https://user-images.githubusercontent.com/1711539/50910524-0f146200-143f-11e9-84d6-0ba80761cd89.png )
r? @flodiebold
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-10 13:07:19 +00:00
bors[bot]
aef93c918e
Merge #478
...
478: WIP: implement cancelation via unwinding r=matklad a=matklad
This uses https://github.com/salsa-rs/salsa/pull/107 to implement cancellation.
Now we can get rid of `Cancelable` wrapper from everywhere except the top-level analyzer library.
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-10 12:51:58 +00:00
Aleksey Kladov
86bc898a2f
explain why we use resume_unwind
2019-01-10 13:06:42 +03:00
Aleksey Kladov
f72c031eb9
implement RefUnwindSafe
2019-01-10 13:04:04 +03:00
Aleksey Kladov
64455ad701
use unwinding for cancelation
2019-01-10 12:20:32 +03:00
Hrvoje Ban
8384b2cc38
Extend selection for list items
2019-01-09 20:51:19 +01:00
Aleksey Kladov
cf20ecae9f
unwind on cancel
2019-01-09 22:51:05 +03:00
Aleksey Kladov
56b2138d82
show field types in completion
2019-01-09 19:40:11 +03:00
Aleksey Kladov
ddf2a8a948
add completion detail
2019-01-09 19:40:11 +03:00
Aleksey Kladov
e8815b614e
nicer trailing comma handling in types
2019-01-09 19:14:21 +03:00
bors[bot]
76b3985d70
Merge #473
...
473: Partial typo fix r=matklad a=marcusklaas
This fixes some typos. Mostly in documentation, but also some code is affected (`defenition` was used in a few method names).
Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-09 12:20:05 +00:00
Marcus Klaas de Vries
0b8fbb4fad
Fix typos in ARCHITECTURE.md and a number of crates
...
specifically: gen_lsp_server, ra_arena, ra_cli, ra_db, ra_hir
2019-01-09 01:17:09 +01:00
Aleksey Kladov
d18d8399f5
fuzz-lockfile
2019-01-09 01:58:25 +03:00
Aleksey Kladov
5609989368
more stable DefIds via bfs tree walking
2019-01-09 01:57:40 +03:00
Marcus Klaas de Vries
f8261d611a
Fix typo defenition -> definition
2019-01-08 23:38:51 +01:00
Aleksey Kladov
2dc85619be
one more invalidation test
2019-01-09 00:54:06 +03:00
Aleksey Kladov
bcb6fabd15
fix test naming
2019-01-09 00:49:21 +03:00
Aleksey Kladov
8f93e7b9a4
remove duplication in tests
2019-01-09 00:48:54 +03:00
Aleksey Kladov
0c62b1bb7a
fix the docs
2019-01-08 22:45:52 +03:00
Aleksey Kladov
5b573deb20
fix usages after rename
2019-01-08 22:33:36 +03:00
Aleksey Kladov
6bca91af53
rename ra_analysis -> ra_ide_api
2019-01-08 22:30:56 +03:00
Aleksey Kladov
fa3c9ce392
fix usages after rename
2019-01-08 22:30:32 +03:00
Aleksey Kladov
1967884d68
rename ra_editor -> ra_ide_api_light
2019-01-08 22:17:36 +03:00
Aleksey Kladov
921689b70d
kill text utils
2019-01-08 22:03:13 +03:00
Aleksey Kladov
f553837c1c
upstream text-utils to text_unit
2019-01-08 21:50:04 +03:00
Aleksey Kladov
695294bbb9
ra_db is independent from editor
2019-01-08 21:03:42 +03:00
Aleksey Kladov
0c88360eb4
add comment
2019-01-08 21:01:41 +03:00
Aleksey Kladov
13301f284c
ra_hir does not depend on ra_editor
2019-01-08 21:01:41 +03:00
Aleksey Kladov
702bdacb03
move node at offset to aglo already
2019-01-08 21:01:41 +03:00
Aleksey Kladov
1b82084a5f
dont depend on ra_editor directly
2019-01-08 21:01:41 +03:00
Aleksey Kladov
ac92973a6c
move function to code_model_api
2019-01-08 20:11:13 +03:00
Aleksey Kladov
141ab166cf
switch to newer cargo-metadata
2019-01-08 19:36:09 +03:00
Aleksey Kladov
4fa972cffb
simplify
2019-01-08 18:44:18 +03:00
Aleksey Kladov
6f02f176c8
simplify
2019-01-08 18:43:29 +03:00
Aleksey Kladov
db794abe66
kill FnSignatureInfo
2019-01-08 18:42:11 +03:00
Aleksey Kladov
ed4f13e5c7
remove FnSignatureInfo from hir
2019-01-08 18:38:34 +03:00
Aleksey Kladov
a3f74702d9
move tests
2019-01-08 18:33:19 +03:00
Aleksey Kladov
256ec6e8d4
introduce CallInfo
2019-01-08 18:27:44 +03:00
Aleksey Kladov
e6a4383bb4
move call-info to a separate file
2019-01-08 18:16:26 +03:00
Florian Diebold
946b0ba02c
Fix name resolution across source roots
...
It was using the wrong name in that case.
2019-01-08 15:16:24 +01:00
Florian Diebold
d4b44a092f
Fix use tree desugaring
2019-01-08 15:00:29 +01:00
bors[bot]
562b448f9e
Merge #458
...
458: dont reexport module id r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-08 13:36:13 +00:00
Aleksey Kladov
544c63b58e
dont reexport module id
2019-01-08 16:35:36 +03:00
Aleksey Kladov
821f5186ba
use real signature in completion
2019-01-08 16:08:58 +03:00
Aleksey Kladov
d4c8310d05
switch interner to use arena
2019-01-08 15:53:32 +03:00
Aleksey Kladov
54e5c4f085
minimize visibility
2019-01-08 15:40:02 +03:00
Aleksey Kladov
5edcf313f6
move query impls to adt
2019-01-08 15:38:29 +03:00
Aleksey Kladov
64f202bdd7
move variant public api to api
2019-01-08 15:32:27 +03:00
Aleksey Kladov
2d0ab52212
move variants to API
2019-01-08 15:28:08 +03:00
Aleksey Kladov
71c7936932
minor
2019-01-08 15:23:56 +03:00
Aleksey Kladov
2d4dc22af8
move enum to code_model_api
2019-01-08 15:22:57 +03:00
Aleksey Kladov
e30c533eb6
move stuct to code_model_api
2019-01-08 15:19:37 +03:00
bors[bot]
3bb1cb7017
Merge #455
...
455: Import fixpoint loop for name resolution r=matklad a=flodiebold
This implements reexports, so only the glob import part of #231 remains.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-08 12:02:06 +00:00
Florian Diebold
dc186c0fcc
Import fixpoint loop for name resolution
2019-01-08 12:53:31 +01:00
Aleksey Kladov
50d5e37481
convert some if-lets to match
2019-01-08 14:23:00 +03:00
Aleksey Kladov
96236a9be5
assist to convert if-let to match
2019-01-08 14:21:29 +03:00
Aleksey Kladov
fa6e0b0d38
itroduce trait for ast tokens
2019-01-08 12:23:10 +03:00
Aleksey Kladov
d62ede8262
migrate ra_lsp_server to new rowan
2019-01-08 11:56:17 +03:00
Aleksey Kladov
3ffd5dd2a6
migrate ra_analysis to new rowan
2019-01-08 11:47:28 +03:00
Aleksey Kladov
da0b348ae9
migrate ra_hir to rowan 2.0
2019-01-08 11:28:42 +03:00
Aleksey Kladov
d6020f516f
migrate ra_cli to new rowan
2019-01-08 11:20:15 +03:00
Aleksey Kladov
fe53b28250
migrate ra_db to new rowan
2019-01-08 11:20:15 +03:00
Aleksey Kladov
b88775af7f
migrate ra_editor to rowan 0.2
2019-01-08 11:20:15 +03:00
Aleksey Kladov
b73c51ff9b
wrap TreePtr
2019-01-08 11:20:15 +03:00
Aleksey Kladov
5618c8ade1
regenerate
2019-01-08 11:20:15 +03:00
Aleksey Kladov
d91a98ec84
switch ra_syntax to new rowan API
2019-01-08 11:20:15 +03:00
Aleksey Kladov
55272f2023
update rowan
2019-01-08 11:20:15 +03:00
Marcus Klaas de Vries
e51d44a2de
Process explicit type hints for str, bool and char
2019-01-07 20:43:41 +01:00
Marcus Klaas de Vries
5d15dd70b0
Tidy up binary operator type inference; add test file
2019-01-07 20:39:23 +01:00
Marcus Klaas de Vries
7b0eaef580
Implement type inference for more binary operators
...
Mostly just for primitive numeric types such as u32 and f64. Not
yet a general solution using trait resolution.
2019-01-07 20:11:31 +01:00
Marcus Klaas de Vries
3238c06a5a
Add remaining binary operations to AST
2019-01-07 19:04:25 +01:00
Florian Diebold
7bb279b365
Implement autoderef for field accesses
2019-01-07 14:54:23 +01:00
bors[bot]
a6071c9f4c
Merge #442
...
442: WIP: indent on typing dot r=matklad a=simonvandel
Fixes #439 .
The unit test passes, but I can't seem to make VS code perform the action. The existing action on "=" doesn't work either on my end either though.
I didn't add any smart way of detecting the current indent level. Any ideas how I would do that?
Co-authored-by: Simon Vandel Sillesen <simon.vandel@gmail.com>
2019-01-07 06:26:09 +00:00
Simon Vandel Sillesen
f3c708ab7b
my formatting tool locally messes things up
2019-01-07 06:24:07 +01:00
Simon Vandel Sillesen
979dcf36e4
fix nits
2019-01-07 06:16:04 +01:00
Florian Diebold
d618b1f2ce
if let -> match
2019-01-07 01:10:29 +01:00
Florian Diebold
2dfb5e6ac0
Improve types for node_expr / node_pat
2019-01-07 00:05:19 +01:00
Florian Diebold
71f7d82e45
Introduce ArenaMap
2019-01-07 00:05:19 +01:00
Florian Diebold
cf49a11263
Sort ranges in type inference tests
...
Also rename the files to remove the numbers (they don't serve a purpose now that
there are only the data files).
2019-01-07 00:05:19 +01:00
Florian Diebold
6210e82041
Use HIR Expr for type inference
...
Now we can reuse the type inference inside a function when typing whitespace
etc. :)
2019-01-07 00:05:19 +01:00
Florian Diebold
a4e97f5a2b
Show types when hovering patterns as well
2019-01-06 22:53:09 +01:00
bors[bot]
31c1999505
Merge #440
...
440: Implement type inference for boolean operators r=flodiebold a=marcusklaas
Tried implementing the easiest part of https://github.com/rust-analyzer/rust-analyzer/issues/390 . Hope this is somewhat close to what the intent of the issue was. Found it surprisingly easy to find my way around the repository - it's well organized!
Very grateful for any pointers.
Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-06 21:28:36 +00:00
Marcus Klaas de Vries
82d9a77dad
Touch up type inference for boolean operators
...
Also try to infer its subexpressions and set type expectations
whenever possible.
2019-01-06 22:17:54 +01:00
Simon Vandel Sillesen
bbc044990a
formatting
2019-01-06 22:06:22 +01:00
Simon Vandel Sillesen
0be055072d
fix tests
2019-01-06 21:59:14 +01:00
Aleksey Kladov
8a3b489c2f
kill module source
2019-01-06 20:01:26 +03:00
Aleksey Kladov
733383446f
move submodule computationt to module_tree
2019-01-06 17:44:50 +03:00
Aleksey Kladov
17b2994b99
fix the test
2019-01-06 17:38:20 +03:00
Aleksey Kladov
5b0267ecf7
fix after rebase
2019-01-06 17:37:18 +03:00
Aleksey Kladov
fd4456d0ec
flatten module structure
2019-01-06 17:36:10 +03:00
Aleksey Kladov
5a505189a8
adjust comments
2019-01-06 17:35:57 +03:00
Aleksey Kladov
c303e6fbdf
fix ra_analysis to work with the new API
2019-01-06 17:35:57 +03:00
Aleksey Kladov
a7f4f7bfcc
split module source into decl/defin
2019-01-06 17:35:57 +03:00
Aleksey Kladov
9cb02fd931
kill old module
2019-01-06 17:35:57 +03:00
Aleksey Kladov
3c2cb89087
add parent & resolve_path
2019-01-06 17:35:29 +03:00
Aleksey Kladov
1836f4db35
make source cancelable
2019-01-06 17:35:29 +03:00
Aleksey Kladov
b37fba7136
make deps cancelable
2019-01-06 17:35:29 +03:00
Aleksey Kladov
61687b9db6
fix tests
2019-01-06 17:35:29 +03:00
Aleksey Kladov
8c4d277036
switch source-binders to Module
2019-01-06 17:35:29 +03:00
Aleksey Kladov
147b0f94e6
Start code_model::Module
2019-01-06 17:35:29 +03:00
Aleksey Kladov
9a820dc0ee
move crate to code_model_api
2019-01-06 17:35:29 +03:00
bors[bot]
eaf553dade
Merge #441
...
441: hir::Expr r=matklad a=flodiebold
Still a bit to do, but I already adapted `FnScopes` and thought I'd get feedback already.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-06 13:45:22 +00:00
Simon Vandel Sillesen
4f3bc42349
add more tests
2019-01-06 12:24:33 +01:00
Aleksey Kladov
bc3e732ec5
split_import intention correctly works with use trees
2019-01-06 12:48:33 +03:00
Simon Vandel Sillesen
b0ffa98a00
add "." as a trigger char on type formatting
2019-01-06 09:56:00 +01:00
Simon Vandel Sillesen
2e52b27e71
refactor
2019-01-06 09:41:11 +01:00
Simon Vandel Sillesen
bb8624dff6
format code
2019-01-06 08:08:23 +01:00
Simon Vandel Sillesen
cfaaf33069
rename unused variable
2019-01-06 07:56:02 +01:00
Florian Diebold
98957f4e6f
Add fn signature query
2019-01-06 01:13:31 +01:00
Simon Vandel Sillesen
f99398d9d5
indent on typing dot. fixes #439
2019-01-06 00:58:03 +01:00
Florian Diebold
e5a6cf8153
Various small code review improvements
2019-01-06 00:38:08 +01:00
Florian Diebold
8e3e5ab2c8
Make FnScopes use hir::Expr
...
This was a bit complicated. I've added a wrapper type for now that does the
LocalSyntaxPtr <-> ExprId translation; we might want to get rid of that or give
it a nicer interface.
2019-01-06 00:29:36 +01:00
Florian Diebold
136aba1cf3
Add HIR Expr machinery
2019-01-05 22:41:12 +01:00
Florian Diebold
a6f33b4ca5
Add test for invalidation of inferred types when typing inside function
...
This currently fails, but should work once we have hir::Expr.
2019-01-05 22:41:12 +01:00
Marcus Klaas de Vries
4fc233a02e
Implement type inference for boolean operators
2019-01-05 21:28:30 +01:00
Aleksey Kladov
01cf32c46e
fix tests
2019-01-05 21:09:11 +03:00
Aleksey Kladov
be84a112a7
show types in local variable hovers
2019-01-05 20:53:30 +03:00
Aleksey Kladov
ee461a2111
kill approximatelly_resolve_symbol
2019-01-05 20:00:03 +03:00
Aleksey Kladov
da32463cbf
inline goto_defention tests
2019-01-05 19:41:43 +03:00
Aleksey Kladov
c2a0f5e50f
move goto_defenition to a separate file
2019-01-05 19:30:49 +03:00
Aleksey Kladov
4551155073
introduce separate goto_defenition
2019-01-05 19:30:49 +03:00
Aleksey Kladov
ad2a5da259
kill accidentally added file
2019-01-05 19:30:42 +03:00
Aleksey Kladov
bdbdade036
move typeof to hover
2019-01-05 17:39:34 +03:00
Aleksey Kladov
9f44d4c56d
fold doc_comment into hover
2019-01-05 17:33:31 +03:00
Aleksey Kladov
3ad0037f90
move hover implementation to ra_analysis
2019-01-05 17:24:17 +03:00
Aleksey Kladov
2560a9e807
wip
2019-01-05 16:40:50 +03:00
bors[bot]
8d51b02362
Merge #414
...
414: textDocument/hover returns both type name and doc_text r=matklad a=h-michael
implement #389
Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
2019-01-05 13:12:41 +00:00
Aleksey Kladov
79fd6b5c88
change visibility can change pub to pub(crate)
2019-01-05 15:28:07 +03:00
Aleksey Kladov
ea3504057e
split import assist
2019-01-05 13:56:33 +03:00
bors[bot]
481713a0e1
Merge #427
...
427: Remove extra space when joining lines in use items r=matklad a=alanhdu
Fixes #423 .
Co-authored-by: Alan Du <alanhdu@gmail.com>
2019-01-05 07:16:48 +00:00
Alan Du
19c641390d
Fix join_lines use_items right w/ and w/o comma
2019-01-04 22:06:36 -05:00
Alan Du
182ec76f13
Address join lines use items right }
2019-01-04 22:01:11 -05:00
Hirokazu Hata
341eb4ae87
Use both type_of and doc_text_for
2019-01-05 11:28:16 +09:00
bors[bot]
4a3ef8fe63
Merge #370
...
370: Self params & type r=matklad a=flodiebold
This implements type inference for `self`, so field completion for methods taking `self` works now.
- rename `IMPL_ITEM` to `IMPL_BLOCK` -- rustc calls the methods etc. inside an impl `ImplItem`s, and the impl itself doesn't define an item, so I thought this name was clearer.
- add HIR for impl blocks -- we collect all impls in a crate at once, so we can go from methods to containing impls, and since we will later also need to find all impls for a certain type (which may be anywhere in the crate, I think?). We could be more lazy here, but I don't know if it's worth the complexity.
- resolve `self` and `Self` during type inference
- refactor a bit in ty.rs as well
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-04 19:55:23 +00:00
Aleksey Kladov
6c8e54aaee
⬆️ salsa
2019-01-04 22:31:13 +03:00
Florian Diebold
e6aeabf96f
Rename ImplsInCrateQuery as well
2019-01-04 19:52:07 +01:00
Alan Du
fae8960554
Remove extra space when joining lines in use items
2019-01-04 13:39:43 -05:00
Florian Diebold
443ddb73c3
Do impl collection per module, not per crate
2019-01-04 19:29:53 +01:00
Florian Diebold
334ca0d9a7
Rename ImplBlock::target -> target_type, and add target_trait already
2019-01-04 19:16:39 +01:00
Florian Diebold
bb029cd29b
Rename traits::impl_item -> impl_block as well, as well as the tests
2019-01-04 19:15:15 +01:00
Florian Diebold
0ad13b9477
Add a test for self field completion
...
Needed to add a default crate graph in the analysis for that.
2019-01-04 19:14:52 +01:00
Florian Diebold
6ab0e292d2
Refactor a bit
2019-01-04 19:14:22 +01:00
Florian Diebold
538147bf94
Resolve the Self type
2019-01-04 19:13:50 +01:00
Florian Diebold
d4db61b9a1
Resolve the self parameter during type inference
2019-01-04 19:12:29 +01:00
Florian Diebold
111126ed3c
Type the self parameter
2019-01-04 19:10:50 +01:00
Florian Diebold
ae9530addc
Add HIR for impl blocks
...
Since we need to be able to go from def to containing impl block, as well as the
other direction, and to find all impls for a certain type, a design similar to
the one for modules, where we collect all impls for the whole crate and keep
them in an arena, seemed fitting. The ImplBlock type, which provides the public
interface, then consists only of an Arc to the arena containing all impls, and
the index into it.
2019-01-04 19:10:47 +01:00
Florian Diebold
226e31dae9
Add test for self type inference
2019-01-04 18:28:43 +01:00
Florian Diebold
fe6c4115f6
Rename ImplItem to ImplBlock
...
rustc uses the name ImplItem for items in impls, not the impl {} block itself,
which could lead to confusion.
2019-01-04 18:28:36 +01:00
Aleksey Kladov
3fe6f422f9
remove id arena
2019-01-04 16:58:10 +03:00
Aleksey Kladov
291d578938
extract area to a crate
2019-01-04 16:58:10 +03:00
csmoe
a0ef196d04
add mod doc comments test in ast
2019-01-04 21:51:45 +08:00
csmoe
f604ff5b2f
parse doc comment for items
2019-01-04 21:29:00 +08:00
csmoe
8a6d6ac132
add mod doc comment test
2019-01-04 21:28:09 +08:00
bors[bot]
6295bbe6ec
Merge #391
...
391: docing parser methods r=csmoe a=csmoe
Co-authored-by: csmoe <csmoe@msn.com>
2019-01-04 04:36:40 +00:00