Commit graph

14334 commits

Author SHA1 Message Date
bors[bot]
1a29934c37
Merge #7145
7145: Proper handling $crate Take 2 [DO NOT MERGE] r=edwin0cheng a=edwin0cheng

Similar to previous PR (#7133) , but improved the following things :

1. Instead of storing the whole `ExpansionInfo`, we store a similar but stripped version `HygieneInfo`.
2. Instread of storing the `SyntaxNode` (because every token we are interested are IDENT), we store the `TextRange` only.
3. Because of 2, we now can put it in Salsa.
4. And most important improvement: Instead of computing the whole frames every single time, we compute it recursively through salsa: (Such that in the best scenario, we only need to compute the first layer of frame)

```rust
        let def_site = db.hygiene_frame(info.def.file_id);
        let call_site = db.hygiene_frame(info.arg.file_id);

        HygieneFrame { expansion: Some(info), local_inner, krate, call_site, def_site }
```

The overall speed compared to previous PR is much faster (65s vs 45s) :
```
[WITH old PR]
Database loaded 644.86ms, 284mi
Crates in this dir: 36
Total modules found: 576
Total declarations: 11153
Total functions: 8715
Item Collection: 15.78s, 91562mi
Total expressions: 240721
Expressions of unknown type: 2635 (1%)
Expressions of partially unknown type: 2064 (0%)
Type mismatches: 865
Inference: 49.84s, 250747mi
Total: 65.62s, 342310mi
rust-analyzer -q analysis-stats .  66.72s user 0.57s system 99% cpu 1:07.40 total

[WITH this PR]
Database loaded 665.83ms, 284mi
Crates in this dir: 36
Total modules found: 577
Total declarations: 11188
Total functions: 8743
Item Collection: 15.28s, 84919mi
Total expressions: 241229
Expressions of unknown type: 2637 (1%)
Expressions of partially unknown type: 2064 (0%)
Type mismatches: 868
Inference: 30.15s, 135293mi
Total: 45.43s, 220213mi   
rust-analyzer -q analysis-stats .  46.26s user 0.74s system 99% cpu 47.294 total
```

*HOWEVER*,  it is still a perf regression (35s vs 45s):
```
[WITHOUT this PR]
Database loaded 657.42ms, 284mi
Crates in this dir: 36
Total modules found: 577
Total declarations: 11177
Total functions: 8735
Item Collection: 12.87s, 72407mi
Total expressions: 239380
Expressions of unknown type: 2643 (1%)
Expressions of partially unknown type: 2064 (0%)
Type mismatches: 868
Inference: 22.88s, 97889mi
Total: 35.74s, 170297mi
rust-analyzer -q analysis-stats .  36.71s user 0.63s system 99% cpu 37.498 total
```



Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-01-08 03:57:11 +00:00
bors[bot]
a3e5dcc177
Merge #7201
7201: Simplify some matches in completions modules r=matklad a=Veykril



Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-07 23:12:26 +00:00
Lukas Wirth
6dca2cbba5 Simplify mod completion 2021-01-07 23:33:52 +01:00
Lukas Wirth
ca6db58762 Tidy up attribute completion match 2021-01-07 22:48:54 +01:00
bors[bot]
5722d2b7b8
Merge #7097
7097: Add fix to wrap return expression in Some r=matklad a=theotherphil

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

Co-authored-by: Phil Ellison <phil.j.ellison@gmail.com>
2021-01-07 19:53:05 +00:00
Phil Ellison
7066bff9c3 Switch test marker 2021-01-07 19:01:33 +00:00
Phil Ellison
554ee6ea02 cargo fmt 2021-01-07 19:01:33 +00:00
Phil Ellison
b2dbe6e43a Add fix to wrap return expression in Some 2021-01-07 19:01:33 +00:00
bors[bot]
981a0d708e
Merge #7199
7199: typo r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-07 18:16:43 +00:00
bors[bot]
4ddf075673
Merge #7193
7193: Show progress for fetching workspace (cargo-metadata and loadOutDirsFromCheck) r=matklad a=edwin0cheng


![Peek 2021-01-07 21-57](https://user-images.githubusercontent.com/11014119/103902132-0db4c780-5135-11eb-94d3-32429445be87.gif)


Fixes #7188 
Fixes #3300

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-01-07 18:07:01 +00:00
bors[bot]
c29d353623
Merge #7191
7191: Adjust vfs crate documentation r=matklad a=arnaudgolfouse

This removes an outdated comment, and uses intra-doc links

Co-authored-by: Arnaud <arnaud.golfouse@free.fr>
2021-01-07 17:57:48 +00:00
Aleksey Kladov
8f994dda68 typo 2021-01-07 20:27:22 +03:00
Edwin Cheng
2b2d699b35 Report progress for cargo metadata and output-dir 2021-01-08 01:18:58 +08:00
bors[bot]
2d2613b481
Merge #7198
7198: Styleguide readability r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-07 17:12:54 +00:00
Aleksey Kladov
5aed769afe Styleguide readability 2021-01-07 20:11:55 +03:00
Edwin Cheng
54eb87de03 Refactor out JodChild 2021-01-08 01:08:34 +08:00
bors[bot]
dce5f0c585
Merge #7197
7197: Document `std::ops` style r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-07 16:28:43 +00:00
Aleksey Kladov
eb710a63ca Document std::ops style 2021-01-07 19:27:47 +03:00
bors[bot]
344704a054
Merge #7196
7196: Better fixture highlight r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-07 16:11:54 +00:00
Aleksey Kladov
f459375f48 Better fixture highlight 2021-01-07 19:11:27 +03:00
bors[bot]
b821264f86
Merge #7195
7195: Update remaining serverPath references r=lnicola a=lnicola

Fixes https://github.com/rust-analyzer/rust-analyzer/pull/7156#issuecomment-755487667

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-01-07 15:30:23 +00:00
Laurențiu Nicola
56497ce925 Update remaining serverPath references 2021-01-07 17:06:11 +02:00
bors[bot]
aa9bef0797
Merge #7194
7194: Don't update the server if managed by the user r=matklad a=lnicola

Fixes #7187

CC @figsoda

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-01-07 14:39:50 +00:00
Laurențiu Nicola
c547ec1cd6 Don't update the server if managed by the user 2021-01-07 16:37:08 +02:00
bors[bot]
7967ce85cf
Merge #7184
7184: Changes Cursor Marker To $0 r=matklad a=kevaundray



Co-authored-by: Kevaundray Wedderburn <kevtheappdev@gmail.com>
2021-01-07 12:27:17 +00:00
Kevaundray Wedderburn
72b9a4fbd3 Change <|> to $0 - Rebase 2021-01-07 12:09:23 +00:00
bors[bot]
c3e9fb183b
Merge #7192
7192: Use american spelling for config r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-07 12:07:49 +00:00
Aleksey Kladov
037caec62c Use american spelling for config
As per

171c3c08fe/docs/dev/style.md (variable-naming)

Also implement config aliasing, for pain-free settings migrations in the future
2021-01-07 15:07:19 +03:00
Arnaud
d216d718bf Use file_set::FileSet and FileSet consistently in doc
The first occurrence of `FileSet` has the full path (`file_set::FileSet`),
while every other is simply `FileSet`.
2021-01-07 12:18:25 +01:00
Arnaud
f80f4ff223 Use intra-doc links in vfs crate documentation 2021-01-07 12:17:38 +01:00
Arnaud
b6669b1c9b Remove the reference to WalkdirLoaderHandle in vfs documentation
This structure was deleted in commit #dad1333
2021-01-07 12:10:02 +01:00
bors[bot]
171c3c08fe
Merge #7190
7190: Remove some stale deprecations r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-07 10:54:44 +00:00
Aleksey Kladov
c8ace3a295 Remove some stale deprecations 2021-01-07 13:54:18 +03:00
bors[bot]
1347b7fa4c
Merge #7189
7189: Extend git evacuation procedure r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-07 09:01:48 +00:00
Aleksey Kladov
08a1bcf9f8 Extend git evacuation procedure 2021-01-07 12:01:21 +03:00
Edwin Cheng
76f2b9d2ef Proper handling $crate Take 2 2021-01-07 13:08:32 +08:00
bors[bot]
959406aeb5
Merge #7186
7186: Align config's API with usage r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-06 18:27:02 +00:00
Aleksey Kladov
f8a0561178 Align config's API with usage
The config now is mostly immutable, optimize for that.
2021-01-06 21:22:24 +03:00
bors[bot]
7ae4b8bdb6
Merge #7183
7183: YAGNI active_resolve_capabilities r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-06 17:29:18 +00:00
Aleksey Kladov
6e87828756 YAGNI active_resolve_capabilities
This leaks a lot of LSP details into ide layer, which we want to avoid:

c9cec381bc/docs/dev (lsp-independence)

Additionally, all what this infra does is providing a toggle for
auto-import completion, but we already have one!
2021-01-06 20:23:53 +03:00
bors[bot]
ae2ea108e0
Merge #7182
7182: Replace last usages of difference with dissimilar r=matklad a=Jesse-Bakker



Co-authored-by: Jesse Bakker <github@jessebakker.com>
2021-01-06 17:16:04 +00:00
Jesse Bakker
974313eb87 Replace last usages of difference with dissimilar 2021-01-06 18:13:29 +01:00
bors[bot]
c9cec381bc
Merge #7181
7181: Document project_model::PackageData and project_model::TargetData r=arnaudgolfouse a=arnaudgolfouse

This PR adds some documentation for the `project_model` crate.

Some of the field descriptions were taken directly from their `cargo_metadata` counterpart :
- `PackageData` -> `cargo_metadata::Package`
- `TargetData` -> `cargo_metadata::Target`

Co-authored-by: Arnaud <arnaud.golfouse@free.fr>
2021-01-06 16:41:22 +00:00
Arnaud
ef636ba346 Document project_model::TargetData
This adds a description for `TargetData` and all its fields.
2021-01-06 17:26:21 +01:00
Arnaud
0abe487f1c Document project_model::PackageData
This adds a description for `PackageData` and all its fields.
2021-01-06 17:26:15 +01:00
bors[bot]
1b2d80dfa7
Merge #7180
7180: More readable test r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-06 15:36:37 +00:00
Aleksey Kladov
edf03548e3 More readable test 2021-01-06 18:36:13 +03:00
Arnaud
7c3e163e90 Make PackageData, TargetData and PackageDependency public
This makes them discoverable through documentation.
They were already publicly accessible through `Package` and `Target`.
2021-01-06 16:33:29 +01:00
bors[bot]
d8dfcc2c0c
Merge #7179
7179: Less confusing instr stat r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-06 15:16:56 +00:00
Aleksey Kladov
ec9e2f50f4 Less confusing instr stat 2021-01-06 18:16:04 +03:00