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
Aleksey Kladov
bc3e732ec5
split_import intention correctly works with use trees
2019-01-06 12:48:33 +03:00
Florian Diebold
98957f4e6f
Add fn signature query
2019-01-06 01:13:31 +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
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