Commit graph

20116 commits

Author SHA1 Message Date
Wilfred Hughes
54b636f1e2 Fix type names in typescript sample code 2021-11-12 11:15:08 -08:00
bors[bot]
d83b76d834
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>
2021-11-11 17:48:45 +00:00
Lukas Wirth
2d7f5891f7 Remove faulty logic for ascending test attributes for runnables 2021-11-11 18:47:24 +01:00
bors[bot]
23a980af62
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>
2021-11-11 17:21:37 +00:00
Lukas Wirth
a510021065 Replace some more ide usages of ModuleDef with Definition 2021-11-11 18:20:54 +01:00
bors[bot]
e42ff91f00
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>
2021-11-11 13:45:20 +00:00
Jonas Schievink
acbe8bc7ac Prime a more reasonable set of crates 2021-11-11 14:44:12 +01:00
TheDoctor314
55a4813151 Fix impl_trait function to emit correct ast
`impl_trait` code copied from `generate_impl_text_inner` to properly
handle the bounds for the generic parameters.
2021-11-11 14:16:59 +05:30
TheDoctor314
e0e8d877c0 Add generic bounds in test 2021-11-11 14:16:29 +05:30
bors[bot]
3b3063fb2d
Merge #10741
10741: internal: Flatten Definition::ModuleDef variant r=Veykril a=Veykril



Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-10 23:19:44 +00:00
Lukas Wirth
7776aad166 internal: Flatten Definition::ModuleDef variant 2021-11-11 00:05:53 +01:00
bors[bot]
1e8d1e84b2
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>
2021-11-10 21:08:51 +00:00
Adam Bratschi-Kaye
0d54754ca7 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.
2021-11-10 21:29:50 +01:00
bors[bot]
e7244e899f
Merge #10739
10739: internal: Simplify r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-10 17:27:24 +00:00
Lukas Wirth
dea973089c Simplify 2021-11-10 18:26:18 +01:00
bors[bot]
b2bce38bb4
Merge #10729
10729: Fix: Lookup impls in local def maps r=jonas-schievink a=XFFXFF

fixes #10676 

Co-authored-by: zhoufan <1247714429@qq.com>
2021-11-10 16:47:35 +00:00
bors[bot]
f724c84e7d
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>
2021-11-10 15:12:05 +00:00
Lukas Wirth
3c8898b1b1 Do not search through all three namespaces in ItemScope::name_of 2021-11-10 16:08:40 +01:00
TheDoctor314
05b368f065 Add generic parameters for manual impl assist
The `impl_trait` function takes an optional `GenericParamList` to create
the trait impl.
2021-11-10 12:53:48 +05:30
TheDoctor314
4f93fa1213 Add failing tests for generic struct 2021-11-10 12:53:48 +05:30
bors[bot]
899610778b
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>
2021-11-09 22:11:32 +00:00
Florian-Schoenherr
4fb76743ca fix: show the right check-command
Signed-off-by: Florian-Schoenherr <florian.schoenherr99@gmail.com>
2021-11-09 21:52:55 +01:00
bors[bot]
c747512363
Merge #10732
10732: minor: Bump deps r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-11-09 18:06:23 +00:00
Laurențiu Nicola
e98b072da7 Bump chalk 2021-11-09 20:05:04 +02:00
Laurențiu Nicola
eb879ee06c Bump libc and paste 2021-11-09 20:03:48 +02:00
zhoufan
f00cd911bf lookup impls in local del maps 2021-11-09 18:14:02 +08:00
bors[bot]
3c786bd7fd
Merge #10726
10726: minor: Add some completion profile spans r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-08 18:42:10 +00:00
Lukas Wirth
ab657af5b7 Add some completion profile spans 2021-11-08 19:41:16 +01:00
bors[bot]
653b78e9b3
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>
2021-11-08 14:08:49 +00:00
Lukas Wirth
26419c0379 Fix proc-macro attributes being shadowed by their functions in IDE layer 2021-11-08 14:49:50 +01:00
bors[bot]
f48b2622d8
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>
2021-11-08 13:37:34 +00:00
bors[bot]
c5c11b87cc
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>
2021-11-08 13:12:03 +00:00
Lukas Wirth
f7e8136923 Add test for current incorrect behaviour 2021-11-08 14:10:26 +01:00
bors[bot]
2c0f433fd2
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>
2021-11-07 11:13:15 +00:00
bors[bot]
e4ce6c7468
Merge #10698
10698: implement multi-token mapping for ssr r=Veykril a=spookyvision



Co-authored-by: Anatol Ulrich <anatol.ulrich@ferrous-systems.com>
2021-11-07 11:02:39 +00:00
bors[bot]
eebac7beb1
Merge #10712
10712: minor: Avoid deprecated methods in client-side tests r=lnicola a=lnicola



Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-11-07 08:03:03 +00:00
Laurențiu Nicola
1fe48a7184 Avoid deprecated methods in client-side tests 2021-11-07 10:00:58 +02:00
bors[bot]
2c29bd738b
Merge #10709
10709: minor: Bump deps r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-11-06 15:41:32 +00:00
Laurențiu Nicola
d18a379c7b Bump deps 2021-11-06 17:40:38 +02:00
Lukas Wirth
7369360c15 Don't ascribe types in pattern completion for patterns twice 2021-11-05 18:39:36 +01:00
bors[bot]
5cd36e89ef
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>
2021-11-05 17:34:16 +00:00
Laurențiu Nicola
834916bad1 Show how to create ~/.local/bin 2021-11-05 19:32:55 +02:00
bors[bot]
726b4dd8bd
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>
2021-11-05 15:06:37 +00:00
Lukas Wirth
4d768bede0 Short-circuit descend_into_macros_single 2021-11-05 16:03:45 +01:00
Lukas Wirth
addd93ed9a Don't search for root nodes unnecessarily 2021-11-05 15:52:10 +01:00
bors[bot]
274d9f90ae
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>
2021-11-05 13:53:59 +00:00
Lukas Wirth
8dad1b9228 Don't check items for macro calls if they have no attributes 2021-11-05 14:50:10 +01:00
bors[bot]
d1e449e313
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>
2021-11-05 13:26:56 +00:00
Lukas Wirth
af4d244462 Cache ast::MacroCalls to their expansions in Semantics::descend_into_macros_impl 2021-11-05 14:25:47 +01:00
Lukas Wirth
2f5afba9f8 Replace some String usages with SmolStr in completions 2021-11-05 12:30:39 +01:00