]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoMerge #10755
bors[bot] [Fri, 12 Nov 2021 19:32:04 +0000 (19:32 +0000)]
Merge #10755

10755: Fix type names in typescript sample code r=lnicola a=Wilfred

`bool` is Rust, whereas `boolean` is the type name in TypeScript.

Co-authored-by: Wilfred Hughes <me@wilfred.me.uk>
2 years agoFix type names in typescript sample code
Wilfred Hughes [Fri, 12 Nov 2021 19:15:08 +0000 (11:15 -0800)]
Fix type names in typescript sample code

2 years agoMerge #10747
bors[bot] [Thu, 11 Nov 2021 17:48:45 +0000 (17:48 +0000)]
Merge #10747

10747: fix: Remove faulty logic for ascending test attributes for runnables r=Veykril a=Veykril

Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10744

- This logic is currently not required as we do not expand test/bench anymore for the time being
- The implementation of this was flawed to begin with as it just skipped out of macro expansions instead of ascending the trees inside expansions

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoRemove faulty logic for ascending test attributes for runnables
Lukas Wirth [Thu, 11 Nov 2021 17:47:24 +0000 (18:47 +0100)]
Remove faulty logic for ascending test attributes for runnables

2 years agoMerge #10745
bors[bot] [Thu, 11 Nov 2021 17:21:37 +0000 (17:21 +0000)]
Merge #10745

10745: internal: Replace some more ide usages of ModuleDef with Definition r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoReplace some more ide usages of ModuleDef with Definition
Lukas Wirth [Thu, 11 Nov 2021 17:20:54 +0000 (18:20 +0100)]
Replace some more ide usages of ModuleDef with Definition

2 years agoMerge #10743
bors[bot] [Thu, 11 Nov 2021 13:45:20 +0000 (13:45 +0000)]
Merge #10743

10743: feat: index fewer crates on startup/reload r=jonas-schievink a=jonas-schievink

Before this PR, we used to index every crate in the `CrateGraph`, which includes every test, benchmark and example of all packages everywhere. The point of indexing is to speed up future queries, so indexing lots of tiny crates users are unlikely to open isn't really helpful.

This PR instead makes us index only the transitive dependencies of all workspace crates.

This reduces the number of crates we index in the rust-analyzer repo from 617 to 177 (!). Time is not impacted by that much, because most of the skipped crates are tiny.

bors r+

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2 years agoPrime a more reasonable set of crates
Jonas Schievink [Thu, 11 Nov 2021 13:39:20 +0000 (14:39 +0100)]
Prime a more reasonable set of crates

2 years agoMerge #10741
bors[bot] [Wed, 10 Nov 2021 23:19:44 +0000 (23:19 +0000)]
Merge #10741

10741: internal: Flatten Definition::ModuleDef variant r=Veykril a=Veykril

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agointernal: Flatten `Definition::ModuleDef` variant
Lukas Wirth [Wed, 10 Nov 2021 21:02:50 +0000 (22:02 +0100)]
internal: Flatten `Definition::ModuleDef` variant

2 years agoMerge #10689
bors[bot] [Wed, 10 Nov 2021 21:08:51 +0000 (21:08 +0000)]
Merge #10689

10689: Handle pub tuple fields in tuple structs r=Veykril a=adamrk

The current implementation will throw a parser error for tuple structs
that contain a pub tuple field. For example,
```rust
struct Foo(pub (u32, u32));
```
is valid Rust, but rust-analyzer will throw a parser error.  This is
because the parens after `pub` is treated as a visibility context.
Allowing a tuple type to follow `pub` in the special case when we are
defining fields in a tuple struct can fix the issue.

I guess this is a really minor case because there's not much reason
for having a tuple type within a struct tuple, but it is valid rust syntax...

Co-authored-by: Adam Bratschi-Kaye <ark.email@gmail.com>
2 years agoHandle pub tuple fields in tuple structs
Adam Bratschi-Kaye [Wed, 3 Nov 2021 22:57:46 +0000 (23:57 +0100)]
Handle pub tuple fields in tuple structs

The current implementation will throw a parser error for tuple structs
that contain a pub tuple field. For example,
```rust
struct Foo(pub (u32, u32));
```
is valid Rust, but rust-analyzer will throw a parser error.  This is
because the parens after `pub` is treated as a visibility context.
Allowing a tuple type to follow `pub` in the special case when we are
defining fields in a tuple struct can fix the issue.

2 years agoMerge #10739
bors[bot] [Wed, 10 Nov 2021 17:27:24 +0000 (17:27 +0000)]
Merge #10739

10739: internal: Simplify r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoSimplify
Lukas Wirth [Wed, 10 Nov 2021 16:33:35 +0000 (17:33 +0100)]
Simplify

2 years agoMerge #10729
bors[bot] [Wed, 10 Nov 2021 16:47:35 +0000 (16:47 +0000)]
Merge #10729

10729: Fix: Lookup impls in local def maps r=jonas-schievink a=XFFXFF

fixes #10676

Co-authored-by: zhoufan <1247714429@qq.com>
2 years agoMerge #10738
bors[bot] [Wed, 10 Nov 2021 15:12:05 +0000 (15:12 +0000)]
Merge #10738

10738: internal: Do not search through all three namespaces in `ItemScope::name_of` r=Veykril a=Veykril

Brings down `5ms - find_path_prefixed (46 calls)` to `1ms - find_path_prefixed (46 calls)` for me on the `integrated_completion_benchmark`.
Still `O(n)` but this should considerably cut down lookups nevertheless(as shown by the timings already).
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoDo not search through all three namespaces in `ItemScope::name_of`
Lukas Wirth [Wed, 10 Nov 2021 15:06:16 +0000 (16:06 +0100)]
Do not search through all three namespaces in `ItemScope::name_of`

2 years agoMerge #10731
bors[bot] [Tue, 9 Nov 2021 22:11:32 +0000 (22:11 +0000)]
Merge #10731

10731: fix: show the right check-command r=Veykril a=Florian-Schoenherr

Currenty r.a. only shows this:
![image](https://user-images.githubusercontent.com/65456722/140977478-e6bc8a45-7c25-4578-9406-fb34f1eb0792.png)
even if another command was specified

There might be a better way to do this, I tried.

Co-authored-by: Florian-Schoenherr <florian.schoenherr99@gmail.com>
2 years agofix: show the right check-command
Florian-Schoenherr [Tue, 9 Nov 2021 20:52:55 +0000 (21:52 +0100)]
fix: show the right check-command

Signed-off-by: Florian-Schoenherr <florian.schoenherr99@gmail.com>
2 years agoMerge #10732
bors[bot] [Tue, 9 Nov 2021 18:06:23 +0000 (18:06 +0000)]
Merge #10732

10732: minor: Bump deps r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2 years agoBump chalk
Laurențiu Nicola [Tue, 9 Nov 2021 18:05:04 +0000 (20:05 +0200)]
Bump chalk

2 years agoBump libc and paste
Laurențiu Nicola [Tue, 9 Nov 2021 18:03:48 +0000 (20:03 +0200)]
Bump libc and paste

2 years agolookup impls in local del maps
zhoufan [Tue, 9 Nov 2021 10:13:42 +0000 (18:13 +0800)]
lookup impls in local del maps

2 years agoMerge #10726
bors[bot] [Mon, 8 Nov 2021 18:42:10 +0000 (18:42 +0000)]
Merge #10726

10726: minor: Add some completion profile spans r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoAdd some completion profile spans
Lukas Wirth [Mon, 8 Nov 2021 18:41:16 +0000 (19:41 +0100)]
Add some completion profile spans

2 years agoMerge #10722
bors[bot] [Mon, 8 Nov 2021 14:08:49 +0000 (14:08 +0000)]
Merge #10722

10722: fix: Fix proc-macro attributes being shadowed by their functions in IDE layer r=Veykril a=Veykril

We sometimes still didn't resolve proc-macro attrs in attribute paths in the ide crates due to their function definitions resolving first.
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoFix proc-macro attributes being shadowed by their functions in IDE layer
Lukas Wirth [Mon, 8 Nov 2021 13:31:46 +0000 (14:31 +0100)]
Fix proc-macro attributes being shadowed by their functions in IDE layer

2 years agoMerge #10688
bors[bot] [Mon, 8 Nov 2021 13:37:34 +0000 (13:37 +0000)]
Merge #10688

10688: internal: Type-check TS on CI and also turn off the strict setting `useUnknownInCatchVariables` r=lnicola a=ChayimFriedman2

We don't follow it and I found that turning it on will have little benefit.

I'm not sure if we should also type-check when building in launch.json.

Co-authored-by: Chayim Refael Friedman <chayimfr@gmail.com>
2 years agoMerge #10720
bors[bot] [Mon, 8 Nov 2021 13:12:03 +0000 (13:12 +0000)]
Merge #10720

10720: fix: Don't ascribe types in pattern completion for param patterns twice r=Veykril a=Veykril

Fixes #10323
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoAdd test for current incorrect behaviour
Lukas Wirth [Mon, 8 Nov 2021 13:10:26 +0000 (14:10 +0100)]
Add test for current incorrect behaviour

2 years agoMerge #10699
bors[bot] [Sun, 7 Nov 2021 11:13:15 +0000 (11:13 +0000)]
Merge #10699

10699: internal: Make CompletionItem `label` and `lookup` fields `SmolStr`s r=Veykril a=Veykril

This replaces a bunch of String clones with SmolStr clones, though also makes a few parts a bit more expensive(mainly things involving `format!`ted strings as labels).

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoMerge #10698
bors[bot] [Sun, 7 Nov 2021 11:02:39 +0000 (11:02 +0000)]
Merge #10698

10698: implement multi-token mapping for ssr r=Veykril a=spookyvision

Co-authored-by: Anatol Ulrich <anatol.ulrich@ferrous-systems.com>
2 years agoMerge #10712
bors[bot] [Sun, 7 Nov 2021 08:03:03 +0000 (08:03 +0000)]
Merge #10712

10712: minor: Avoid deprecated methods in client-side tests r=lnicola a=lnicola

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2 years agoAvoid deprecated methods in client-side tests
Laurențiu Nicola [Sun, 7 Nov 2021 08:00:58 +0000 (10:00 +0200)]
Avoid deprecated methods in client-side tests

2 years agoMerge #10709
bors[bot] [Sat, 6 Nov 2021 15:41:32 +0000 (15:41 +0000)]
Merge #10709

10709: minor: Bump deps r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2 years agoBump deps
Laurențiu Nicola [Sat, 6 Nov 2021 15:12:34 +0000 (17:12 +0200)]
Bump deps

2 years agoDon't ascribe types in pattern completion for patterns twice
Lukas Wirth [Fri, 5 Nov 2021 17:39:36 +0000 (18:39 +0100)]
Don't ascribe types in pattern completion for patterns twice

2 years agoMerge #10706
bors[bot] [Fri, 5 Nov 2021 17:34:16 +0000 (17:34 +0000)]
Merge #10706

10706: minor: Show how to create `~/.local/bin` r=lnicola a=lnicola

Closes #10687

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2 years agoShow how to create `~/.local/bin`
Laurențiu Nicola [Fri, 5 Nov 2021 17:32:55 +0000 (19:32 +0200)]
Show how to create `~/.local/bin`

2 years agoMerge #10704
bors[bot] [Fri, 5 Nov 2021 15:06:37 +0000 (15:06 +0000)]
Merge #10704

10704: internal: Short-circuit `descend_into_macros_single` r=Veykril a=Veykril

There is no need to descend everything if all we are interested in is the first mapping.
This bring `descend_into_macros` timing in highlighting in `rust-analyzer/src/config.rs` from `154ms - descend_into_macros (2190 calls)` to `24ms - descend_into_macros (2190 calls)` since we use the single variant there(will regress once we want to highlight multiple namespaces again though).
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoShort-circuit descend_into_macros_single
Lukas Wirth [Fri, 5 Nov 2021 15:02:56 +0000 (16:02 +0100)]
Short-circuit descend_into_macros_single

2 years agoDon't search for root nodes unnecessarily
Lukas Wirth [Fri, 5 Nov 2021 14:52:10 +0000 (15:52 +0100)]
Don't search for root nodes unnecessarily

2 years agoMerge #10703
bors[bot] [Fri, 5 Nov 2021 13:53:59 +0000 (13:53 +0000)]
Merge #10703

10703: internal: Don't check items for macro calls if they have no attributes r=Veykril a=Veykril

Turns out when highlighting we currently populate the Dynmaps of pretty much every item in a file, who would've known that would be so costly...
Shaves off 250 ms for the integrated benchmark on `rust-analyzer/src/config.rs`.

We are still looking at a heft `154ms - descend_into_macros (2190 calls)` but I feel like this is slowly nearing towards just call overhead.
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoDon't check items for macro calls if they have no attributes
Lukas Wirth [Fri, 5 Nov 2021 13:50:10 +0000 (14:50 +0100)]
Don't check items for macro calls if they have no attributes

2 years agoMerge #10701
bors[bot] [Fri, 5 Nov 2021 13:26:56 +0000 (13:26 +0000)]
Merge #10701

10701: internal: Cache ast::MacroCalls to their expansions in Semantics::descend_into_macros_impl r=Veykril a=Veykril

Saves ~45ms when highlighting `rust-analyzer/src/config.rs` for me
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoCache ast::MacroCalls to their expansions in Semantics::descend_into_macros_impl
Lukas Wirth [Fri, 5 Nov 2021 13:25:47 +0000 (14:25 +0100)]
Cache ast::MacroCalls to their expansions in Semantics::descend_into_macros_impl

2 years agoReplace some String usages with SmolStr in completions
Lukas Wirth [Fri, 5 Nov 2021 11:30:39 +0000 (12:30 +0100)]
Replace some String usages with SmolStr in completions

2 years agoMerge #10685
bors[bot] [Fri, 5 Nov 2021 11:25:17 +0000 (11:25 +0000)]
Merge #10685

10685: fix: Enable markdown tables r=Veykril a=Veykril

Should fix https://github.com/rust-analyzer/rust-analyzer/issues/10655
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agomaybe?
Anatol Ulrich [Thu, 4 Nov 2021 21:01:59 +0000 (22:01 +0100)]
maybe?

2 years agoMerge #10696
bors[bot] [Thu, 4 Nov 2021 17:13:33 +0000 (17:13 +0000)]
Merge #10696

10696: internal: Replace more Name::to_string usages with Name::to_smol_str r=Veykril a=Veykril

Gets rid of some more unnecessary string allocs
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoReplace more Name::to_string usages with Name::to_smol_str
Lukas Wirth [Thu, 4 Nov 2021 17:12:05 +0000 (18:12 +0100)]
Replace more Name::to_string usages with Name::to_smol_str

2 years agoEnable markdown tables
Lukas Wirth [Wed, 3 Nov 2021 14:40:41 +0000 (15:40 +0100)]
Enable markdown tables

2 years agoMerge #10645
bors[bot] [Thu, 4 Nov 2021 16:31:16 +0000 (16:31 +0000)]
Merge #10645

10645: fix: make `rename` multi-token mapping aware r=Veykril a=spookyvision

Co-authored-by: Anatol Ulrich <anatol.ulrich@ferrous-systems.com>
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Co-authored-by: Anatol Ulrich <45840+spookyvision@users.noreply.github.com>
2 years agoMerge #10691
bors[bot] [Thu, 4 Nov 2021 05:52:05 +0000 (05:52 +0000)]
Merge #10691

10691: minor: Use array `into_iter` in more places r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2 years agoUse array into_iter in more places
Laurențiu Nicola [Wed, 3 Nov 2021 12:21:46 +0000 (14:21 +0200)]
Use array into_iter in more places

2 years agoType-check TS on CI and also turn off the strict setting `useUnknownInCatchVariables`
Chayim Refael Friedman [Wed, 3 Nov 2021 23:23:45 +0000 (01:23 +0200)]
Type-check TS on CI and also turn off the strict setting `useUnknownInCatchVariables`

We don't follow it and I found that turning it on will have little benefit.

2 years agoMerge #10686
bors[bot] [Wed, 3 Nov 2021 20:23:14 +0000 (20:23 +0000)]
Merge #10686

10686: internal: Add `Semantics::original_ast_node` for upmapping nodes out of macro files r=Veykril a=Veykril

Fixes trying to insert imports into macro expanded files which then do text edits on very wrong text ranges.

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoAdd Semantics::original_ast_node for upmapping nodes out of macro files
Lukas Wirth [Wed, 3 Nov 2021 20:12:36 +0000 (21:12 +0100)]
Add Semantics::original_ast_node for upmapping nodes out of macro files

2 years agoMerge #10680
bors[bot] [Wed, 3 Nov 2021 16:19:42 +0000 (16:19 +0000)]
Merge #10680

10680: implement Literal::from_str r=jonas-schievink a=spookyvision

this apparently fixes RTIC 0.6's
```rust
#[rtic::app]
mod app {}
```

Co-authored-by: Anatol Ulrich <anatol.ulrich@ferrous-systems.com>
2 years agoimplement Literal::from_str
Anatol Ulrich [Tue, 2 Nov 2021 20:42:17 +0000 (21:42 +0100)]
implement Literal::from_str

2 years agoMerge #10667
bors[bot] [Wed, 3 Nov 2021 14:50:39 +0000 (14:50 +0000)]
Merge #10667

10667: internal: Expose version string of crates from HIR r=Veykril a=Veykril

Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10664

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoUpdate crates/text_edit/src/lib.rs
Anatol Ulrich [Wed, 3 Nov 2021 14:44:46 +0000 (15:44 +0100)]
Update crates/text_edit/src/lib.rs

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoUpdate crates/ide/src/rename.rs
Anatol Ulrich [Wed, 3 Nov 2021 14:44:32 +0000 (15:44 +0100)]
Update crates/ide/src/rename.rs

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoExpose version string of crates fom HIR
Lukas Wirth [Sat, 30 Oct 2021 14:17:04 +0000 (16:17 +0200)]
Expose version string of crates fom HIR

2 years agoMerge #10596
bors[bot] [Wed, 3 Nov 2021 14:02:10 +0000 (14:02 +0000)]
Merge #10596

10596: internal: Set server status to warning when proc-macro sources change r=Veykril a=Veykril

Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10027
![image](https://user-images.githubusercontent.com/3757771/138102552-208d3edf-a843-49e6-9f48-1e911f54a4ba.png)

It feels wrong using the database in this part of the code, but this was the only way to figure out whether a file belongs to a proc-macro that I could think of.

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoAdd disjoint check back in TextEdit::union
Lukas Wirth [Wed, 3 Nov 2021 13:42:15 +0000 (14:42 +0100)]
Add disjoint check back in TextEdit::union

2 years agoforgot a dbg
Anatol Ulrich [Wed, 3 Nov 2021 13:21:29 +0000 (14:21 +0100)]
forgot a dbg

2 years agoMerge #10683
bors[bot] [Wed, 3 Nov 2021 07:40:23 +0000 (07:40 +0000)]
Merge #10683

10683: minor: Use `.into_iter()` method on array to avoid dereference r=lnicola a=arzg

Arguably it’s nicer to just use `.into_iter()` instead of iterating over references which are immediately dereferenced.

I also changed the use of `String::from` to `.to_string()` because the latter has around twenty times more usages in rust-analyzer.

Co-authored-by: Aramis Razzaghipour <aramisnoah@gmail.com>
2 years agoUse `.into_iter()` method on array to avoid dereference
Aramis Razzaghipour [Wed, 3 Nov 2021 05:13:47 +0000 (16:13 +1100)]
Use `.into_iter()` method on array to avoid dereference

2 years agoaccept identical Indels when merging; add rename test case
Anatol Ulrich [Tue, 2 Nov 2021 20:38:38 +0000 (21:38 +0100)]
accept identical Indels when merging; add rename test case

2 years agoMerge #10672
bors[bot] [Sun, 31 Oct 2021 10:16:59 +0000 (10:16 +0000)]
Merge #10672

10672: feat: upgrade ubuntu builders r=matklad a=matklad

For `-gnu` triples, use 20.04, the current LTS. This upgrades the
required version of glibc. For musl, just use `latest` as, presumably,
we don't care about glibc version in that case.

Hopefully, this unbreaks nightly publishing!

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agominor: group -gnu builders together
Aleksey Kladov [Sun, 31 Oct 2021 10:07:30 +0000 (13:07 +0300)]
minor: group -gnu builders together

2 years agofeat: upgrade ubuntu builders
Aleksey Kladov [Sun, 31 Oct 2021 10:05:40 +0000 (13:05 +0300)]
feat: upgrade ubuntu builders

For `-gnu` triples, use 20.04, the current LTS. This upgrades the
required version of glibc. For musl, just use `latest` as, presumably,
we don't care about glibc version in that case.

2 years agoMerge #10671
bors[bot] [Sun, 31 Oct 2021 08:50:24 +0000 (08:50 +0000)]
Merge #10671

10671: minor: Run apt-get update for AArch64 builds r=lnicola a=lnicola

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2 years agoRun apt-get update for AArch64 builds
Laurențiu Nicola [Sun, 31 Oct 2021 08:49:43 +0000 (10:49 +0200)]
Run apt-get update for AArch64 builds

2 years agoMerge #10668
bors[bot] [Sat, 30 Oct 2021 14:42:53 +0000 (14:42 +0000)]
Merge #10668

10668: fix: Fix for-loop expressions breaking with BlockExpr iterable r=Veykril a=Veykril

Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10665
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoFix for-loop expressions breaking with BlockExpr iterable
Lukas Wirth [Sat, 30 Oct 2021 14:37:32 +0000 (16:37 +0200)]
Fix for-loop expressions breaking with BlockExpr iterable

2 years agoSet server status to warning when proc-macro sources change
Lukas Wirth [Wed, 20 Oct 2021 13:29:50 +0000 (15:29 +0200)]
Set server status to warning when proc-macro sources change

2 years agoMerge #10663
bors[bot] [Sat, 30 Oct 2021 06:03:26 +0000 (06:03 +0000)]
Merge #10663

10663: minor: Bump `object` avoid a duplicate dependency r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2 years agoBump object avoid a duplicate dependency
Laurențiu Nicola [Sat, 30 Oct 2021 06:02:45 +0000 (09:02 +0300)]
Bump object avoid a duplicate dependency

2 years agoMerge #10650
bors[bot] [Fri, 29 Oct 2021 20:27:51 +0000 (20:27 +0000)]
Merge #10650

10650: minor: Bump deps r=lnicola a=lnicola

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2 years agoBump chalk
Laurențiu Nicola [Wed, 27 Oct 2021 15:12:30 +0000 (18:12 +0300)]
Bump chalk

2 years agoBump some deps
Laurențiu Nicola [Wed, 27 Oct 2021 15:10:58 +0000 (18:10 +0300)]
Bump some deps

2 years agoMerge #10662
bors[bot] [Fri, 29 Oct 2021 16:16:13 +0000 (16:16 +0000)]
Merge #10662

10662: Fix Plaintext textDocument/hover r=Veykril a=vsrs

Relates to #10028

Note: the PR corrects only invalid content kind, not formatting.

Co-authored-by: vsrs <vit@conrlab.com>
2 years agoFix Plaintext textDocument/hover
vsrs [Fri, 29 Oct 2021 15:22:48 +0000 (18:22 +0300)]
Fix Plaintext textDocument/hover

2 years agoMerge #10648
bors[bot] [Fri, 29 Oct 2021 13:13:12 +0000 (13:13 +0000)]
Merge #10648

10648: fix: Don't discard attributed items when a proc-macro unexpectedly fails to expand r=Veykril a=Veykril

Fixes https://github.com/rust-analyzer/rust-analyzer/issues/9205

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoDon't discard attributed items when a proc-macro unexpectedly fails to expand
Lukas Wirth [Wed, 27 Oct 2021 12:35:58 +0000 (14:35 +0200)]
Don't discard attributed items when a proc-macro unexpectedly fails to expand

2 years agoMerge #10657
bors[bot] [Fri, 29 Oct 2021 13:01:49 +0000 (13:01 +0000)]
Merge #10657

10657: feat: Make unqualified derive attributes flyimportable r=Veykril a=Veykril

![UuwpKODbpB](https://user-images.githubusercontent.com/3757771/139436613-1e6eb8fd-f591-4fca-9383-ff7408ee9b18.gif)
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10052

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agofeat: Make unqualified derive attributes flyimportable
Lukas Wirth [Thu, 28 Oct 2021 17:19:30 +0000 (19:19 +0200)]
feat: Make unqualified derive attributes flyimportable

2 years agoMerge #10595
bors[bot] [Fri, 29 Oct 2021 10:40:43 +0000 (10:40 +0000)]
Merge #10595

10595: internal: Fix a format error r=Veykril a=dzvon

Fixes #10581

Co-authored-by: Dezhi Wu <wu543065657@163.com>
2 years agoFix: correct markdown link form.
Dezhi Wu [Fri, 29 Oct 2021 10:25:32 +0000 (18:25 +0800)]
Fix: correct markdown link form.

2 years agoFix: use a concise way to change link form when generating package.json
Dezhi Wu [Fri, 29 Oct 2021 02:00:10 +0000 (10:00 +0800)]
Fix: use a concise way to change link form when generating package.json

2 years agoMerge #10656
bors[bot] [Thu, 28 Oct 2021 16:49:55 +0000 (16:49 +0000)]
Merge #10656

10656: fix: Enable auto-import and qualify-path in derive attributes r=Veykril a=Veykril

cc https://github.com/rust-analyzer/rust-analyzer/issues/10052

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoEnable auto-import and qualify-path in derive attributes
Lukas Wirth [Thu, 28 Oct 2021 16:40:38 +0000 (18:40 +0200)]
Enable auto-import and qualify-path in derive attributes

2 years agoMerge #10654
bors[bot] [Thu, 28 Oct 2021 15:08:33 +0000 (15:08 +0000)]
Merge #10654

10654: internal: Refactor ide handling for paths in derive inputs r=Veykril a=Veykril

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoRefactor ide handling for paths in derive inputs
Lukas Wirth [Thu, 28 Oct 2021 14:13:37 +0000 (16:13 +0200)]
Refactor ide handling for paths in derive inputs

2 years agoMerge #10623
bors[bot] [Thu, 28 Oct 2021 10:32:13 +0000 (10:32 +0000)]
Merge #10623

10623: internal: replace L_DOLLAR/R_DOLLAR with parenthesis hack r=matklad a=matklad

The general problem we are dealing with here is this:

```
macro_rules! thrice {
    ($e:expr) => { $e * 3}
}

fn main() {
    let x = thrice!(1 + 2);
}
```

we really want this to print 9 rather than 7.

The way rustc solves this is rather ad-hoc. In rustc, token trees are
allowed to include whole AST fragments, so 1+2 is passed through macro
expansion as a single unit. This is a significant violation of token
tree model.

In rust-analyzer, we intended to handle this in a more elegant way,
using token trees with "invisible" delimiters. The idea was is that we
introduce a new kind of parenthesis, "left $"/"right $", and let the
parser intelligently handle this.

The idea was inspired by the relevant comment in the proc_macro crate:

https://doc.rust-lang.org/stable/proc_macro/enum.Delimiter.html#variant.None

> An implicit delimiter, that may, for example, appear around tokens
> coming from a “macro variable” $var. It is important to preserve
> operator priorities in cases like $var * 3 where $var is 1 + 2.
> Implicit delimiters might not survive roundtrip of a token stream
> through a string.

Now that we are older and wiser, we conclude that the idea doesn't work.

_First_, the comment in the proc-macro crate is wishful thinking. Rustc
currently completely ignores none delimiters. It solves the (1 + 2) * 3
problem by having magical token trees which can't be duplicated:

* https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/TIL.20that.20token.20streams.20are.20magic
* https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Handling.20of.20Delimiter.3A.3ANone.20by.20the.20parser

_Second_, it's not like our implementation in rust-analyzer works. We
special-case expressions (as opposed to treating all kinds of $var
captures the same) and we don't know how parser error recovery should
work with these dollar-parenthesis.

So, in this PR we simplify the whole thing away by not pretending that
we are doing something proper and instead just explicitly special-casing
expressions by wrapping them into real `()`.

In the future, to maintain bug-parity with `rustc` what we are going to
do is probably adding an explicit `CAPTURED_EXPR` *token* which we can
explicitly account for in the parser.

If/when rustc starts handling delimiter=none properly, we'll port that
logic as well, in addition to special handling.

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agoFix: transform the asciidoc form link to markdown style when generating the package...
Dezhi Wu [Thu, 28 Oct 2021 02:13:43 +0000 (10:13 +0800)]
Fix: transform the asciidoc form link to markdown style when generating the package.json

2 years agoMerge #10629
bors[bot] [Wed, 27 Oct 2021 21:40:28 +0000 (21:40 +0000)]
Merge #10629

10629: Add assist for replacing turbofish with explicit type. r=Veykril a=terrynsun

Converts `::<_>` to an explicit type assignment.

```
let args = args.collect::<Vec<String>>();
```
->
```
let args: Vec<String> = args.collect();
```

Closes #10285

Co-authored-by: Terry Sun <terrynsun@gmail.com>
2 years agofixup! rustfmt
Terry Sun [Wed, 27 Oct 2021 17:58:31 +0000 (10:58 -0700)]
fixup! rustfmt