Commit graph

11223 commits

Author SHA1 Message Date
Jonas Schievink
e2b664e9fd fix: use raw idents in make::name{_ref} with keywords 2021-05-07 17:22:54 +02:00
bors[bot]
a8da2ca3a1
Merge #8745
8745: Support goto_type_definition for types r=matklad a=Veykril

I'm unsure if the approach of lowering an `ast::Type` to a `hir::Type` is a good idea, it seems fine to me at least.
Fixes #2882

Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
2021-05-06 22:28:35 +00:00
bors[bot]
0ee945e289
Merge #8280
8280: Borrow text of immutable syntax node r=iDawer a=iDawer

In https://github.com/rust-analyzer/rowan/pull/101 `rowan::SyntaxNode::green` returns `Cow<'_, GreenNodeData>`. It returns borrow of green node of immutable syntax tree node.
Using this we can return borrowed text from `ast::Name::text`.

~~However now it allocates in case of mutable syntax trees.~~ (see next comment)

The idea comes from https://github.com/rust-analyzer/rowan/pull/100#issuecomment-809330325

Co-authored-by: Dawer <7803845+iDawer@users.noreply.github.com>
2021-05-06 22:19:52 +00:00
Jonas Schievink
20ae41c1a1 Reuse database in LowerCtx 2021-05-06 23:23:50 +02:00
Aleksey Kladov
c4f9cb9b53 Update crates/hir_def/src/nameres/tests/incremental.rs
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-05-06 20:00:43 +02:00
Aleksey Kladov
548e5a5c29 internal: add failing incremental test 2021-05-06 20:00:11 +02:00
Jonas Schievink
976a3226fe Don't store call-site text offsets in hygiene info 2021-05-06 19:59:54 +02:00
Kirill Bulatov
607d8a2f61 Small macro fix 2021-05-06 20:12:30 +03:00
Aleksey Kladov
6a16ec52aa internal: use API stabilized in 1.52 2021-05-06 20:12:15 +03:00
Lukas Tobias Wirth
d97a4b8e49 Support goto_type_definition for types 2021-05-06 17:05:49 +02:00
Edwin Cheng
1fb20e3231 Simplify 2021-05-06 22:39:51 +08:00
Jesse Bakker
10254b5d95 Fix: Do not overwrite comments and attrs in trait impl completion 2021-05-06 16:16:38 +02:00
Dawer
90a5dca0a2 Fix build 2021-05-06 10:22:51 +05:00
Dawer
0a156c80af Hide implementation details of TokenText 2021-05-06 10:07:06 +05:00
Dawer
d9b4ac8128 Clean up 2021-05-06 10:07:06 +05:00
Dawer
d7e169fe55 Borrow text from nodes of immutable syntax trees 2021-05-06 10:07:06 +05:00
Dawer
dc4fa504ea Adapt to a new rowan borrowing node API. 2021-05-06 10:06:52 +05:00
Dawer
52143f389f Update to rowan 0.13.0-pre.5 2021-05-06 10:04:39 +05:00
bors[bot]
c3596371d8
Merge #8674
8674: fix for #8664: Emit folding ranges for multi-line where clauses r=matklad a=m5tfi

#8664 

I added a test that assert folding multi-line where clauses while leaving single lined one. Please, let me know if the code needs further improvements.

Co-authored-by: m5tfi <72708423+m5tfi@users.noreply.github.com>
2021-05-05 21:14:12 +00:00
Lukas Tobias Wirth
3f796fea9f simplify 2021-05-05 22:55:12 +02:00
m5tfi
c2cf34db90 remove unneeded visited_where_clauses 2021-05-05 06:28:41 +02:00
Lukas Tobias Wirth
d26fb188c1 Add some cov marks for qualified_path completion 2021-05-04 22:35:37 +02:00
Aleksey Kladov
1ea4dae596 Document expansion queries 2021-05-04 22:41:46 +03:00
Aleksey Kladov
3f6980e4e1 simplify macro expansion code
Using `Option` arguments such that you always pass `None` or `Some` at
the call site is a code smell.
2021-05-04 22:41:46 +03:00
Aleksey Kladov
95dc8ef265 make illegal states unrepresentable
only declarative macros have def-site token map
2021-05-04 22:41:43 +03:00
Aleksey Kladov
7d9ea39de6 Cleanups 2021-05-04 22:40:59 +03:00
bors[bot]
010e4c8fe0
Merge #8731
8731: Complete enum variants through type aliases r=Veykril a=Veykril

Fixes #8730
bors r+

Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
2021-05-04 19:05:19 +00:00
Lukas Tobias Wirth
8b94bf7b2d Complete enum variants through type aliases 2021-05-04 21:04:19 +02:00
bors[bot]
e17748e4b2
Merge #8727
8727: minor: use standard import style r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-05-04 17:37:09 +00:00
Aleksey Kladov
2e97dbcbb8 minor: use standard import style 2021-05-04 20:36:48 +03:00
bors[bot]
5e87f84211
Merge #8726
8726: internal: reduce visibility r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-05-04 17:29:55 +00:00
Aleksey Kladov
87f827bfaf internal: reduce visibility 2021-05-04 20:29:30 +03:00
bors[bot]
871bc1cd08
Merge #8725
8725: internal: env var to toggle slow benches r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-05-04 15:31:10 +00:00
Aleksey Kladov
a1f42ef8ad internal: env var to toggle slow benches 2021-05-04 18:21:36 +03:00
Aleksey Kladov
16f7c3ea91 minor: unconfuse myself about macro def vs macro rules 2021-05-04 18:20:10 +03:00
bors[bot]
a231da9d24
Merge #8720
8720: internal: add integrated completion benchmark r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-05-04 12:14:56 +00:00
Aleksey Kladov
b2f040fc9a internal: add integrated completion benchmark 2021-05-04 15:14:33 +03:00
bors[bot]
d9f1b5fc7c
Merge #8719
8719: Fix block comment intra doc link injection ranges r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
2021-05-04 12:00:30 +00:00
Lukas Tobias Wirth
5a78d96d0e Fix block comment intra doc link injection ranges 2021-05-04 13:51:57 +02:00
bors[bot]
6d812efcd9
Merge #8711
8711: Only resolve selected assist r=matklad a=SomeoneToIgnore

Part of https://github.com/rust-analyzer/rust-analyzer/issues/8700

Now resolves only the assist that was selected out of the list, while before the whole assist list was resolved despite a single popup selection.

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2021-05-04 11:51:09 +00:00
Aleksey Kladov
41f8ae7daa More searchable name 2021-05-04 10:23:47 +03:00
bors[bot]
0323045631
Merge #8714
8714: internal: remove one more usage of the rewriter r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-05-04 07:07:06 +00:00
Aleksey Kladov
ae6b9c25ed internal: remove one more usage of the rewriter 2021-05-04 09:42:20 +03:00
memoryruins
27ba1dd8e3 Replace memmap to memmap2 in proc_macro_api 2021-05-03 20:20:47 -04:00
Kirill Bulatov
734b95a1ac Code review fixes 2021-05-03 23:24:36 +03:00
bors[bot]
a0ec841bfe
Merge #8715
8715: Make CompletionContext expected_type smarter r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
2021-05-03 19:36:40 +00:00
Lukas Tobias Wirth
121bd5c533 Make CompletionContext expected_type smarter 2021-05-03 21:34:34 +02:00
Lukas Tobias Wirth
3d6d4e9855 Don't mutate the tree while traversing in reorder_impl 2021-05-03 18:36:31 +02:00
Kirill Bulatov
90fc329377 Index retrieval fix 2021-05-03 19:35:44 +03:00
Kirill Bulatov
53a73de3d1 Small fixes 2021-05-03 18:45:30 +03:00
Kirill Bulatov
8089a227f4 Tests added 2021-05-03 18:40:04 +03:00
Kirill Bulatov
b1d600a1ec Less panics in the assist resolution 2021-05-03 18:18:45 +03:00
Kirill Bulatov
28293d370f Add docs and use better naming 2021-05-03 18:16:35 +03:00
Kirill Bulatov
1679a376f3 Resolve single assist only 2021-05-03 18:03:28 +03:00
Kirill Bulatov
e5cdcb8b12 Add a way to resolve certain assists 2021-05-03 17:14:49 +03:00
Aleksey Kladov
cd69307aee fix: don't duplicate Progerss::Finised for cache priming 2021-05-02 21:45:00 +03:00
bors[bot]
548c18c062
Merge #8693
8693: Ensure that only one cache priming task can run at a time r=matklad a=Bobo1239

Fixes #8632.

Co-authored-by: Boris-Chengbiao Zhou <bobo1239@web.de>
2021-05-02 18:34:29 +00:00
Brandon
43c79a35a8 Fix feature description inconsistency 2021-04-30 19:47:41 -07:00
Jonas Schievink
6873920c4f find_path: check only crate-level prelude 2021-04-30 18:41:18 +02:00
Boris-Chengbiao Zhou
ce8c6c4762 Ensure that only one cache priming task can run at a time
Fixes #8632.
2021-04-30 16:48:11 +02:00
bors[bot]
b5b4a1f23d
Merge #8692
8692: Fix panic caused by new Try trait definition r=flodiebold a=flodiebold

The new Try trait definition caused a query cycle for us. This adds recovery for that cycle, but also fixes the cause, which is that we went through the supertraits when resolving `<T as Trait>::Assoc`, which isn't actually necessary. I also rewrote `all_super_trait_refs` to an iterator before I realized what the actual problem was, so I kept that.

Fixes #8686.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2021-04-30 09:07:24 +00:00
bors[bot]
6ea91a419f
Merge #8695
8695: internal: fix naming polarity r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-04-30 08:57:17 +00:00
Aleksey Kladov
1a01a5ae19 internal: fix naming polarity
Type Constructors have *parameters*, when they are substituted with type
*arguments*, we have a type.
2021-04-30 11:55:59 +03:00
Aleksey Kladov
cb3ef552e8 internal: normalize name
All def types in hir are unsubstituted
2021-04-30 11:52:31 +03:00
m5tfi
5778ab1e41 add folding for where clauses 2021-04-30 10:18:36 +02:00
Florian Diebold
c2aefd5b95 Don't look in super traits for <T as Trait>::Assoc
This isn't actually how it works, you have to specify the exact trait
that has the associated type.

Fixes #8686.
2021-04-29 20:23:02 +02:00
Florian Diebold
2d20ab7eaf Rewrite all_super_trait_refs as an iterator
Doesn't fix the bug I was trying to fix, but now that I did it anyway it
seems fine to keep.
2021-04-29 20:18:41 +02:00
Florian Diebold
b384cfcb81 Handle cycles in generic_defaults more gracefully 2021-04-29 20:00:43 +02:00
Florian Diebold
184a0d7c1e Add test for #8686 2021-04-29 20:00:21 +02:00
Comonad
78f1583bdd fix: closure unify without check ClosureId
closes #8604
2021-04-29 15:26:41 +08:00
Jonas Schievink
cb8632d87c Parse const param defaults 2021-04-29 03:07:53 +02:00
Jonas Schievink
caee3a2eeb Correctly parse negated literals as const args 2021-04-29 02:27:55 +02:00
Aleksey Kladov
5c1a901035 internal: ensure that client and server-side configs are not mixed up
https://github.com/rust-lang/rust/issues/84647 would help big time here.
2021-04-28 13:13:30 +03:00
bors[bot]
86b5084917
Merge #8679
8679: fix: don't show error message for a valid notification r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-04-27 13:10:22 +00:00
Aleksey Kladov
f45c1ffc5b fix: don't show error message for a valid notification
Closes #6782, #6772
2021-04-27 16:09:59 +03:00
Jeremy Kolb
36c20dc23d Return ServerNotInitialized according to the spec
According to the spec we should return ServerNotInitialized if the server is waiting for an initialize request and something else comes in.
Upgrading to lsp-server 0.5.1 will do this and retry until the initialize request comes in.

Fixes #8581
2021-04-27 07:47:06 -04:00
Jorge Mederos Alvarado
c4dba4077f Add config options 2021-04-26 20:29:54 -04:00
Aleksey Kladov
f06e4b8e74 minor: simplify 2021-04-26 19:30:50 +03:00
Aleksey Kladov
363cef5c0e fix: make error message in the status bar more useful
At the moment,the popup is just a bazillion of Cargo's "Compiling this\nCompiling that",
which is not that useful.

--quiet still displays error, which is what we needc
2021-04-26 19:16:07 +03:00
Kirill Bulatov
c24bdab97e Use -u instead of --utc date flag 2021-04-26 17:12:13 +03:00
Aleksey Kladov
4f9640ff39 fix: add date to the version string on Mac
It doesn't support `--iso`
2021-04-26 15:20:15 +03:00
Bastian Kersting
421cf9a1bd Fixed formatting 2021-04-26 11:37:28 +02:00
Bastian Kersting
336b81abd7 Added mutable semantic token modifier for &mut self methods 2021-04-26 09:24:18 +02:00
Danny Zhu
09fc5e1dd7 Check more carefully for cases where a rename can't be done
Attempting to rename an element of a tuple field would previously
replace the type with the new name, which doesn't make sense; now it
fails instead.

The check is done in both `prepare_rename` and `rename` so that the case
is caught before the user is prompted for a new name. Some other
existing failure cases are also now additionally checked in
`prepare_rename`.
2021-04-25 14:08:56 -07:00
Lukas Wirth
050c69c19d Split out merge_imports module from helpers::insert_use 2021-04-24 13:31:43 +02:00
Aleksey Kladov
8d54fd105c fix: correct version string to contain hash, build date and channel 2021-04-24 13:36:45 +03:00
bors[bot]
5cbde9f531
Merge #8591 #8638
8591: Remove SyntaxRewriter usage in insert_use in favor of mutable syntax trees r=matklad a=Veykril

Unfortunately changing `insert_use` to not use `SyntaxRewriter` creates a lot of changes since so much relies on that. But on the other hand this should be the biggest usage of `SyntaxRewriter` I believe.

8638: Remove SyntaxRewriter::from_fn r=Veykril a=Veykril



Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-04-23 16:49:08 +00:00
Lukas Wirth
e6e4417bbb Remove SyntaxRewriter::from_fn 2021-04-23 18:36:43 +02:00
Lukas Wirth
1e88f5ec8e Simplify highlight token match guards 2021-04-23 17:27:18 +02:00
Lukas Wirth
ef6f596b4b Sort HlMod variants and ALL const 2021-04-23 17:24:58 +02:00
Lukas Wirth
c005ce60a0 Tag yield and await as ControlFlow in semantic highlighting 2021-04-23 17:24:45 +02:00
bors[bot]
85bab7539a
Merge #8317
8317: Convert tuple struct to named struct assist r=Veykril a=unexge

Closes https://github.com/rust-analyzer/rust-analyzer/issues/8192

Co-authored-by: unexge <unexge@gmail.com>
2021-04-23 13:37:48 +00:00
unexge
5e765895cf Add missing test case for "Convert to named struct" assist 2021-04-23 16:18:10 +03:00
unexge
97270dfb91 Stop iterating reference after made an edit in "Convert to named struct" assist 2021-04-23 13:08:07 +03:00
bors[bot]
07fb65abb8
Merge #8628
8628: minor: Add one more profiling span to add_dep r=lnicola a=lnicola

CC #8623

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-04-22 18:48:53 +00:00
Laurențiu Nicola
c37ca7841c Add one more profiling span to add_dep 2021-04-22 21:48:17 +03:00
bors[bot]
e529f73355
Merge #8627
8627: Add profiling spans under cargo_to_crate_graph r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-04-22 18:26:09 +00:00
Laurențiu Nicola
6b187af337 Add profiling spans under cargo_to_crate_graph 2021-04-22 21:25:29 +03:00
bors[bot]
0bb074aa26
Merge #8620
8620: Remove unnecessary braces for extracted block expression r=Veykril a=brandondong

This change addresses the first bullet point of https://github.com/rust-analyzer/rust-analyzer/issues/7839.

Specifically, when extracting block expressions, remove the unneeded extra braces inside the generated function.

Co-authored-by: Brandon <brandondong604@hotmail.com>
2021-04-22 15:22:43 +00:00
unexge
affd8d3518 Move reference editing logic into own function to make error handling more ease in "Convert to named struct" assist 2021-04-22 11:33:56 +03:00