Commit graph

1951 commits

Author SHA1 Message Date
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
bors[bot]
3e42a15878 Merge #438
438: show types in local variable hovers r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-05 18:09:48 +00: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
bors[bot]
cc53e9e7d1 Merge #437
437: refactor goto defenition r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-05 17:03:55 +00: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
bors[bot]
2a19d699eb Merge #436
436: Allow user to set path to ra_lsp_server in vscode settings r=matklad a=gentoo90



Co-authored-by: gentoo90 <gentoo90@gmail.com>
2019-01-05 16:13:45 +00:00
gentoo90
a6e04cfa7f Allow user to set path to ra_lsp_server in vscode settings 2019-01-05 17:28:41 +02:00
bors[bot]
b1c86e686c Merge #435
435: Refactor hover r=matklad a=matklad

Primaraly this moves `hover` to `ra_analysis`, so that we finally can write tests for it!

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-05 14:42:10 +00: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
bors[bot]
0f0969b64a Merge #434
434: change visibility can change pub to pub(crate) r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-05 12:28:42 +00:00
Aleksey Kladov
79fd6b5c88 change visibility can change pub to pub(crate) 2019-01-05 15:28:07 +03:00
bors[bot]
44e42edc8b Merge #432
432: Fix link in architecture.md r=matklad a=detrumi



Co-authored-by: Wilco Kusee <wilcokusee@gmail.com>
2019-01-05 11:47:11 +00:00
Wilco Kusee
381cf8b38b Fix link in architecture.md 2019-01-05 12:34:13 +01:00
bors[bot]
53ffa2a030 Merge #431
431: fixes for LSP file system operations r=matklad a=vemoo

fixes for #131 

Co-authored-by: Bernardo <berublan@gmail.com>
2019-01-05 11:31:22 +00:00
Bernardo
4dfc5a6341 fix open of created or renamed file 2019-01-05 12:12:39 +01:00
bors[bot]
9b5b13dfcf Merge #430
430: split import assist r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-05 10:57:39 +00: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
Aleksey Kladov
4608a41ad4 ⬆️ rowan 2019-01-05 00:50:56 +03: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
bors[bot]
04e6b26758 Merge #428
428: ⬆️ salsa r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-04 19:31:35 +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
bors[bot]
03e70711e6 Merge #426
426: Rename ImplItem to ImplBlock r=flodiebold a=flodiebold

rustc uses the name ImplItem for items in impls, not the impl {} block itself,
which could lead to confusion.

Extracted from #370.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-04 17:30:42 +00:00
Florian Diebold
226e31dae9 Add test for self type inference 2019-01-04 18:28:43 +01:00