Commit Graph

9255 Commits

Author SHA1 Message Date
Phil Ellison
db53db8046 Address review suggestion, fix tidy tests 2021-01-01 19:25:18 +00:00
Phil Ellison
077592a12f Initial implementation of view-hir command 2020-12-28 18:29:58 +00:00
bors[bot]
1d530756ed
Merge #7050
7050: Ignore third punct when matching for 2-composite punct in mbe r=jonas-schievink a=edwin0cheng

Fixes #6692



Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-12-27 16:42:01 +00:00
Edwin Cheng
26e1f7696a Ignore third punct in 2-composite punct 2020-12-27 23:51:00 +08:00
Jonas Schievink
70877428a8 Pass crate environment to proc macros 2020-12-27 15:29:47 +01:00
Jonas Schievink
798968e1e3 Move TokenExpander to base_db and rename it
It's only used to break the dependency to proc_macro_api
2020-12-27 15:29:47 +01:00
bors[bot]
0fd75c98ac
Merge #7047
7047: Add force_show_panics flag for proc-macro bridge r=jonas-schievink a=edwin0cheng

https://github.com/rust-lang/rust/pull/75082 and https://github.com/rust-lang/rust/pull/76292 added a new flag in `proc_macro::Bridge` such that the ABI was changed. These ABI changing are the reason of some weird panics which caused #6880 and maybe related to the panic mentioned in #6820.

These changes are landed on rust stable 1.48 so I think it is okay to apply it now.

fixes #6880

r @jonas-schievink 


Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-12-27 13:30:06 +00:00
Edwin Cheng
da92f46cc8 Add force_show_panics flag 2020-12-27 18:00:59 +08:00
Aleksey Kladov
2f22675537 Simplify assists resolution API
Assist vs UnresolvedAssist split doesn't really pull its weight. This
is especially bad if we want to include `Assist` as a field of
diagnostics, where we'd have to make the thing generic.
2020-12-26 14:11:42 +03:00
bors[bot]
44893bbcc5
Merge #7038
7038: Fix type typo in add_missing_impl_members doc r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-25 17:17:14 +00:00
Lukas Wirth
e7dd73ea9e Fix type typo in add_missing_impl_members doc 2020-12-25 18:15:31 +01:00
bors[bot]
14ee9f539c
Merge #7036
7036: Don't split path separators apart in doctest runnables r=Veykril a=Veykril

Fixes #7035

bors r+ 

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-25 10:25:58 +00:00
Lukas Wirth
3ab4f3adbd Don't split path separators apart in doctest runnables 2020-12-25 11:22:11 +01:00
Aleksey Kladov
5d914834a9 Simplify more 2020-12-24 19:37:46 +03:00
Aleksey Kladov
29ed2e0e73 Simplify 2020-12-24 17:54:44 +03:00
bors[bot]
581419fd78
Merge #7030
7030: Support labels in reference search r=matklad a=Veykril

Implements general navigation for labels, goto def, rename and gives labels their own semantic highlighting class.

Fixes #6966

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-24 14:46:41 +00:00
Lukas Wirth
42e3f97c30 Support labels in reference search 2020-12-24 15:40:18 +01:00
bors[bot]
a31ee54afa
Merge #7029
7029: Flush stdout when clearing the progress bar r=lnicola a=lnicola

To prevent this from happening:

```
Database loaded 496.24ms, 288mi
Crates in this dir: 1
Total modules found: 14
Total declarations: 159
Total functions: 122
Item Collection: 6.02s, 61846mi
122/122 100% processing: archive::sizeTotal expressions: 6592       
Expressions of unknown type: 4 (0%)
Expressions of partially unknown type: 104 (1%)
Type mismatches: 3
Inference: 1.03s, 8622mi
Total: 7.05s, 70468mi
```

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-12-24 13:40:29 +00:00
Laurențiu Nicola
b21a79364a Flush stdout when clearing the progress bar 2020-12-24 15:38:45 +02:00
bors[bot]
aebf7ee2b6
Merge #7028
7028: pit-of-success API for unresolved code actions r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-12-24 12:50:30 +00:00
Aleksey Kladov
33384d289e pit-of-success API for unresolved code actions 2020-12-24 15:32:29 +03:00
bors[bot]
06320015af
Merge #7021
7021: Track labels in the HIR r=matklad a=Veykril

Groundwork for #6966

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-24 12:04:28 +00:00
Lukas Wirth
262b9c3982 Track labels in the HIR 2020-12-24 12:49:40 +01:00
bors[bot]
1487f2f10e
Merge #7027
7027: Fix macro_rules not accepting brackets or parentheses r=matklad,lnicola a=Veykril



Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-24 08:44:52 +00:00
Lukas Wirth
3e0bb89541 Fix macro_rules not accepting brackets or parentheses 2020-12-24 09:36:47 +01:00
bors[bot]
a82c2445be
Merge #7020
7020: Implement const pat and expr inference r=flodiebold a=Veykril



Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-23 19:50:04 +00:00
unexge
bfae2634b4 Prevent multiple incorrect case diagnostics in functions 2020-12-23 22:18:31 +03:00
Jeremy Kolb
4f989cfa08 Implement workspace/willRenameFiles for single-level file moves
Renames modules during file rename if they're in the same directory.
2020-12-23 07:47:31 -05:00
bors[bot]
27ccde9ce9
Merge #7019
7019: Try serde_path_to_error for LSP InitializeParams r=matklad a=lnicola



Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-12-23 12:04:32 +00:00
Lukas Wirth
a142beaf01 Implement const block inference 2020-12-23 12:24:24 +01:00
Laurențiu Nicola
4e89c2a664 Try serde_path_to_error for LSP InitializeParams 2020-12-23 13:21:58 +02:00
Lukas Wirth
0a780c0ab3 Implement const pat inference 2020-12-23 12:15:38 +01:00
bors[bot]
4228e826b8
Merge #7016
7016: Bump deps r=flodiebold a=lnicola



Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-12-23 11:04:07 +00:00
Laurențiu Nicola
c04406287a Bump chalk 2020-12-23 12:58:23 +02:00
bors[bot]
0dec77abe7
Merge #7018
7018: Cleanup handle_code_action r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-12-23 10:51:56 +00:00
Aleksey Kladov
2ec92b3dc3 Make code more direct
* Push control flow outwards, as per
  https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/style.md#preconditions

* Don't re-do the work, pass-in the arguments
2020-12-23 13:51:30 +03:00
bors[bot]
fd1fcf2c2e
Merge #7010
7010: Update ungrammar for const block patterns r=matklad a=Veykril

Fixes #6848

Adds const blocks and const block patterns to the AST and parses them.

Blocked on https://github.com/rust-analyzer/ungrammar/pull/17/, will merge that PR there once this one gets the OK so I can remove the local ungrammar dependency path and fix the Cargo.lock.

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-23 10:37:30 +00:00
Lukas Wirth
bdd8c0b68f Remove local ungrammar dependency 2020-12-23 11:22:36 +01:00
Aleksey Kladov
3ced546033 Make code more understandable
Avoid mutation of snapshot's config -- that's spooky action at a
distance. Instead, copy it over to a local variable.

This points out a minor architecture problem, which we won't fix right
away.

Various `ide`-level config structs, like `AssistConfig`, are geared
towards one-shot use when calling a specific methods. On the other
hand, the large `Config` struct in `rust-analyzer` is a long-term
config store.

The fact that `Config` stores `AssistConfig` is accidental -- a better
design would probably be to just store `ConfigData` inside `Config`
and create various `Config`s on the fly out of it.
2020-12-23 13:16:24 +03:00
Aleksey Kladov
e1aca75974 Rename for clarity 2020-12-23 13:14:05 +03:00
bors[bot]
b0d81d98db
Merge #7017
7017: Document `make` module design r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-12-23 10:02:11 +00:00
Aleksey Kladov
f00f75a078 Document make module design 2020-12-23 13:01:31 +03:00
bors[bot]
ee06096b0c
Merge #6960
6960: Show enum variant on Self qualified paths r=matklad a=Veykril

Fixes first part of #6549
Fixes #6550

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-23 09:48:04 +00:00
Laurențiu Nicola
18a7b98b2e Bump rustc_lexer 2020-12-23 11:24:52 +02:00
Laurențiu Nicola
56deb240b2 Disable unaligned feature for the object crate 2020-12-23 10:40:12 +02:00
Aleksey Kladov
2c84c2d07a Don't think that /submod.rs is /mod.rs 2020-12-23 11:02:42 +03:00
Aleksey Kladov
7c07bb6381 Document, how to view config in effect 2020-12-23 10:47:05 +03:00
bors[bot]
493e29d713
Merge #7000
7000: Store invocation site for eager macros r=edwin0cheng a=jonas-schievink

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

r? @edwin0cheng 

I'm not sure if this is totally correct, it looks like we create **two** `EagerCallLoc`s per macro invocation, one for the arguments (?), and one for the actual macro call. I gave both the same `AstId`, hopefully that's correct.

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-12-23 06:22:28 +00:00
Lukas Wirth
2c94c4964a Parse const effect block 2020-12-23 02:15:44 +01:00
Lukas Wirth
03a9bbacf2 Parse ConstBlockPat 2020-12-23 01:49:43 +01:00