Commit graph

13836 commits

Author SHA1 Message Date
Lukas Wirth
db559e5049 Simplify 2021-12-03 17:07:06 +01:00
Lukas Wirth
d1677f3286 Remove syntax highlighting hack for builtin attrs 2021-12-03 16:54:34 +01:00
Lukas Wirth
e58af219a4 feat: Resolve builtin-attr and tools in ide layer 2021-12-03 16:32:17 +01:00
Skyler Rain Ross
5b59a5eca8
refactor(assist/add_return_type): avoid threading needs_whitespace 2021-12-02 10:46:07 -08:00
Skyler Rain Ross
e031267602
fix: add return type works when there's missing whitespace 2021-12-02 09:28:18 -08:00
bors[bot]
b68cd6eda2
Merge #10891
10891: fix: emit trait names in moniker identifier r=Veykril a=tjdevries

Hi,

Not sure if this is the best fix for the problem, but I noticed that functions that part of a trait are not namespaced with the trait name, so this could lead to problems if you had a function and a trait-function both defined in the same module.

Thanks!

TJ

Co-authored-by: TJ DeVries <devries.timothyj@gmail.com>
2021-12-02 11:21:59 +00:00
TJ DeVries
6870bfd099 fixup: include more information for impls 2021-12-02 00:04:03 -05:00
TJ DeVries
d50f18fb65 fixup: properly handle all associated items 2021-12-01 11:43:52 -05:00
Jake Heinz
30b0464ed8 add a fixme: 2021-12-01 12:26:27 +00:00
Jake Heinz
ba92bb1ed9 simplify 2021-12-01 12:25:08 +00:00
Jake Heinz
d2480ecb9f ide: hack to make self not unresolved reference in async trait wrapped impl's 2021-12-01 12:17:20 +00:00
Jake Heinz
b357569d0f add test 2021-12-01 10:28:18 +00:00
Jake Heinz
fec2d39f3c simplify?? 2021-12-01 09:23:42 +00:00
Jake Heinz
a1b2d25810 hir: resolve assoc trait type 2021-12-01 08:44:30 +00:00
TJ DeVries
09c7e22ec2 fix: emit trait names in moniker identifier 2021-11-30 11:16:11 -05:00
bors[bot]
2d0db312b5
Merge #10872
10872: ide_db: build symbol index from crate def map r=Veykril a=jhgg

fixes #4842, #10764

Is this looking correct? 👀 

- [x] build the symbol index based upon the CrateDefMap for the given crate in `crate_symbols`
   - [x] make it multi threaded again, and figure out how to cache each moduleid's symbol index in salsa.
   - [x] NavigationTarget for names in macros is wrong, need to figure out how to compute a text range in the original file id?
   - [x] cleanup some duped code
   - [x] collect macros from `ItemScope.declared_macros()` into symbol index.
        - [x] store declared macros in `ItemScope` so we can figure out where macros were defined for the index.  
   - [x] do something about `SymbolIndex::for_files` - ideally it should use the new module symbol index stuff. 
       - [x] delete `source_file_to_file_symbols` & co...
           - [x] figure out what to do about `library_symbols` 
           - [x] maybe... speed up the new `library_symbols` - the new impl is probably much slower, and definitely much less parallel. **deciding to do nothing here, we can optimize later if necerssary.** 
   - [x] fix failing test: `navigation_target::tests::test_nav_for_symbol` - notably the crate def map doesn't seem to find declarations inside function. 
       - [x] now a bunch of other tests are failing around auto_import & qualify_path handlers. :(
           - [x] need to assoc items in traits and impls
 

Co-authored-by: Jake Heinz <jh@discordapp.com>
2021-11-30 14:07:39 +00:00
Jake Heinz
f4bf750016 simpler way of grabbing module / trait name 2021-11-30 08:24:07 +00:00
Jake Heinz
b0c7ff39b8 remove one need for semantics 2021-11-30 04:50:09 +00:00
Jake Heinz
54fc98920b consts with inners?? 2021-11-30 03:21:17 +00:00
Jake Heinz
492b169224 pr feedbacks 2021-11-30 03:09:38 +00:00
bors[bot]
393cbd0982
Merge #10841
10841: Emit moniker in lsif r=Veykril a=HKalbasi

fix #10559 

Co-authored-by: hkalbasi <hamidrezakalbasi@protonmail.com>
Co-authored-by: HKalbasi <45197576+HKalbasi@users.noreply.github.com>
2021-11-29 11:13:39 +00:00
Jake Heinz
0abf236445 test the one thing this pr was trying to accomplish lol... 2021-11-29 10:43:51 +00:00
Jake Heinz
f0bfe310a2 add a test 2021-11-29 10:36:22 +00:00
Jake Heinz
97105e1288 some more cleanups 2021-11-29 09:52:03 +00:00
Jake Heinz
1280887561 do something with library_symbols 2021-11-29 09:36:00 +00:00
hkalbasi
1409781c45 fix tests 2021-11-29 11:25:53 +03:30
hkalbasi
df261c10b9 remove duplicate data from CrateOrigin 2021-11-29 11:10:39 +03:30
Jake Heinz
176f4da77a simplify work 2021-11-29 07:17:18 +00:00
Jake Heinz
6e89fb6f73 🧹 2021-11-29 05:42:46 +00:00
Jake Heinz
6cf9969546 collect macro_rules! macros into macro declarations 2021-11-29 05:28:22 +00:00
Jake Heinz
1ed5699355 collect macros 2021-11-29 05:22:30 +00:00
Jake Heinz
d69e0dab56 cleanup the whole thing... 2021-11-29 03:54:52 +00:00
Jake Heinz
aecb9a378c traverse even more... 2021-11-29 02:07:16 +00:00
Jake Heinz
9387e2d919 populate container name when traversing down blocks 2021-11-29 01:32:47 +00:00
Jake Heinz
8fa1d9bb47 collect blocks from unnamed consts too 2021-11-29 01:11:31 +00:00
Jake Heinz
8850ea0b4f collect defs from body blocks 2021-11-29 01:09:39 +00:00
Jake Heinz
8307d38dc1 cleanups 2021-11-28 00:42:42 +00:00
bors[bot]
d9b2291f54
Merge #10876
10876: fix: Show parameter hints unconditionally for logical not expressions r=Veykril a=Veykril

Closes https://github.com/rust-analyzer/rust-analyzer/issues/8491
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-27 18:14:59 +00:00
Lukas Wirth
76022bfd60 fix: Show parameter hints unconditionally for logical not expressions 2021-11-27 19:14:36 +01:00
Lukas Wirth
3fcbcf4a0e Don't discard flycheck error messages 2021-11-27 18:57:51 +01:00
Aleksey Kladov
ba414bc2ae minor: correct profiling name 2021-11-27 19:11:39 +03:00
Aleksey Kladov
a1aa8212ef minor: if-let-else to shorter match 2021-11-27 18:18:00 +03:00
Jake Heinz
e033d8c2a2 make navigation target go to original file location 2021-11-27 13:48:50 +00:00
Jake Heinz
a7370c5725 remove file symbols 2021-11-27 13:00:02 +00:00
Jake Heinz
377162c0f8 container name? 2021-11-27 12:27:43 +00:00
Jake Heinz
a1030b07ab use Semantics::parse_or_expand in another place 2021-11-27 11:55:03 +00:00
Jake Heinz
a69af9daa3 sema parse_or_expand 2021-11-27 11:49:51 +00:00
Jake Heinz
0447be7589 wip 2021-11-27 11:25:05 +00:00
Jake Heinz
dca8f612d0 ide: fix expansion for 'as _' 2021-11-27 02:22:21 +00:00
Jonas Schievink
c291e5e284 Use the right ItemTree when re-resolving attr 2021-11-26 03:57:25 +01:00
Jonas Schievink
3bb6f506ee Build per-block ItemTrees 2021-11-26 00:17:20 +01:00
HKalbasi
a654955159
Update crates/project_model/src/workspace.rs
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-25 20:03:43 +03:30
bors[bot]
91cb422e1a
Merge #10859
10859: fix: Prioritize tuple fields in highlight_related r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-25 15:35:18 +00:00
Lukas Wirth
4bf75c5d6e fix: Prioritize tuple fields in highlight_related 2021-11-25 16:34:40 +01:00
bors[bot]
870e730dc8
Merge #10824
10824: project_model: print full cargo command if cargo metadata fails to run r=Veykril a=jhgg

well, `Command` implements a sensible `Debug` which *roughly* does what we want to do. Unfortunately it's got a bit of a quote situation,

So it'd output something like `"cargo" "metadata"  "--format-version" "1" "--features" "foo,bar,baz"`. 

Which although is a bit verbose with the quotes, it's at the very least, not entirely incorrect/misleading.

fixes #10797

Co-authored-by: Jake Heinz <jh@discordapp.com>
2021-11-25 15:12:38 +00:00
bors[bot]
4ca6233bd2
Merge #10847
10847: fix: derive attr path handling in `replace_derive_with_manual_impl` r=rainy-me a=rainy-me

partially fixes #10666

renaming issues mentioned in https://github.com/rust-analyzer/rust-analyzer/issues/10666#issuecomment-955671021 doesn't seem to be fixable at this moment since it's not searchable?(not recorded?) by name.

<del>I'm not sure if it's appropriate to move `parse_comma_sep_paths` function to a method in `ast/node_ext`, maybe `ide_db::helpers` also make sense.</del> put into `ide_db::` instead.

Co-authored-by: rainy-me <github@yue.coffee>
2021-11-24 15:33:00 +00:00
rainy-me
0bb08ccb8f fix: derive path handling 2021-11-25 00:21:29 +09:00
Lukas Wirth
0c98a01b3e Remove possible multiline details in completions 2021-11-24 16:08:11 +01:00
bors[bot]
3e4ac8a2c9
Merge #10846
10846: fix: qualify struct name in struct constructor completion r=Veykril a=andrewleverette

* Alter `add_struct_literal` method signature to take an optional module path
* Update `render_literal` method to use a qualified  

Relates to issue #10771 

Side note: This is my first contribution. Any feedback is welcome!

Co-authored-by: Andrew Leverette <andrewleverette@gmail.com>
2021-11-23 21:22:27 +00:00
bors[bot]
4b1bf5f540
Merge #10849
10849: fix: Disable string highlight injection for macros changing string literals r=Veykril a=Veykril

Fixes #10845
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-23 21:13:35 +00:00
Lukas Wirth
f3b25a6fc8 Disable string highlight injection for macros changing string literals 2021-11-23 22:13:10 +01:00
Andrew Leverette
7f15537fa9 Add optimization for not allocating in case of no module path for struct literal 2021-11-23 14:41:31 -06:00
Andrew Leverette
ce7a141110 Add support for qualified struct names 2021-11-23 10:57:29 -06:00
bors[bot]
054873ce15
Merge #10840
10840: fix: Omit generic defaults for types in hover messages r=jonas-schievink a=Veykril

Fixes #9198

We have ranged hovers now which query specifically for the type of an expression/pattern, so if interested in seeing the default, the user can use that functionality instead.

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-23 15:21:47 +00:00
bors[bot]
1b938ef1ca
Merge #10834
10834: Make lint groups work correctly with `warningsAsInfo` and `warningsAsHint` r=Veykril a=Emilgardis

this change makes it possible to specify

```json
{
   "rust-analyzer.diagnostics.warningsAsInfo": ["unused"],
}
```

to make all lints in the `unused` group show as info, etc.

Co-authored-by: Emil Gardström <emil.gardstrom@gmail.com>
2021-11-22 19:03:07 +00:00
hkalbasi
30ed7fac27 Emit moniker in lsif 2021-11-22 21:29:05 +03:30
Emil Gardström
3dc898389f
Make lint groups work correctly with warningsAsInfo and warningsAsHint 2021-11-22 18:38:28 +01:00
Lukas Wirth
ec07bb98f8 fix: Omit generic defaults for types in hover messages 2021-11-22 18:27:03 +01:00
bors[bot]
a07e406d06
Merge #10839
10839: fix: Fix mbe::Shift::new not accounting for non-ident token ids r=Veykril a=Veykril

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

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-22 17:01:40 +00:00
Lukas Wirth
a9c4c6da4c Fix mbe::Shift::new not accounting for non-ident token ids 2021-11-22 18:00:32 +01:00
Lukas Wirth
0bc3003960 Document token up/down mapping 2021-11-22 17:58:36 +01:00
bors[bot]
a0f01ec14e
Merge #10838
10838: internal: Add the ability to emit token map ids in macro expansion tests r=Veykril a=Veykril



Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-22 15:59:52 +00:00
Lukas Wirth
64cb09ddea Add to macro testing infra to emit token map ids 2021-11-22 16:51:09 +01:00
bors[bot]
b69eee6487
Merge #10809
10809: fix: don't discard formatting of `use` lines r=Veykril a=iDawer

Use mutable syntax trees in `merge_imports`, `split_imports`. This tries to resolve #9013. But I haven't much managed to simplify code of merging.

Also resolve #9361. It reuses a use tree under the cursor so that comments+indentation are preserved. Merged trees are just appended to the end.

This touches bunch of tests. I removed the sorting of use trees as it needs a proper implementation that takes into account comments and line wrapping. I think it is rustfmt's job or at least until we get a close implementation.

Co-authored-by: iDawer <ilnur.iskhakov.oss@outlook.com>
2021-11-22 14:29:24 +00:00
Lukas Wirth
77f08d0fc3 Split parts of ide_db::call_info off into ide 2021-11-22 13:23:34 +01:00
Lukas Wirth
54b2de45e1 Unnest ide::display::navigation_target module 2021-11-22 13:04:28 +01:00
Jake Heinz
03eb9f3abb project_model: print full cargo command if it fails to run 2021-11-21 01:18:42 +00:00
Alex Veber
24f816c481 fix: better Fn traits formatting 2021-11-21 02:39:22 +02:00
bors[bot]
4566414789
Merge #10810
10810: feat: Add toggle to disable cache priming r=jonas-schievink a=lnicola

Even if it doesn't prevent the rest of the features from working, cache priming tends to be quite CPU-intensive and can make people think that the load times are worse than they actually are.

It's also less useful in Code and `rust-tools` because the inlay hints and semantic highlighting trigger quite a bit of computation assuming you have a file open in the editor.

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-11-20 20:24:31 +00:00
bors[bot]
c9c6fa8f56
Merge #10821
10821: fix: wrap `inline_call` and `inline_into_callers` if it inlines into the left side of a binary expression r=Veykril a=rainy-me

close #10359

Co-authored-by: rainy-me <github@yue.coffee>
2021-11-20 17:25:17 +00:00
rainy-me
ebffaa4274 fix: check inline left of binary_expression 2021-11-21 01:48:04 +09:00
bors[bot]
55b7a06888
Merge #10820
10820: minor: Move incorrect case diagnostic things into their module r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-20 16:26:50 +00:00
Lukas Wirth
69782f55de Move incorrect case diagnostic things into their module 2021-11-20 17:25:57 +01:00
bors[bot]
f2707bce36
Merge #10819
10819: internal: Replace some `Vec` occurences with `Box`  r=Veykril a=Veykril

Shaves off ~15mb from self analysis

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-20 15:40:56 +00:00
Lukas Wirth
91def936bc Replace Vec with Box in Path.generic_args field 2021-11-20 16:37:41 +01:00
Lukas Wirth
ceaec9d866 internal: Replace Vec with Box in hir Pat 2021-11-20 16:17:30 +01:00
Lukas Wirth
cc327774b7 internal: Replace Vec with Box in hir Expr 2021-11-20 16:00:45 +01:00
Jake Heinz
7cbc6ae920 ide: hover omits unnamed where preds 2021-11-20 11:45:12 +00:00
Jonas Schievink
9f4c26e780 Format Fn traits using parentheses 2021-11-19 19:58:00 +01:00
Laurențiu Nicola
a68ce62f6a Add toggle to disable cache priming 2021-11-19 19:30:11 +02:00
Florian-Schoenherr
7e25f1b7e2
fix: show custom check-command 2021-11-19 16:22:39 +01:00
iDawer
601413df8f Use mutable syntax trees in merge_imports, split_imports 2021-11-19 20:02:27 +05:00
bors[bot]
4c20d6879f
Merge #10807
10807: fix: Diagnose invalid derive attribute input r=Veykril a=Veykril

Doesn't yet diagnose incorrect syntax between the `(`, `)` braces as we discard those problems currently.
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-19 12:20:13 +00:00
Lukas Wirth
ea03defeac fix: Diagnose invalid derive attribute input 2021-11-19 13:17:35 +01:00
bors[bot]
a60e009b48
Merge #10806
10806: fix: inlay param hint hiding heurstic is case unsensitive r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-19 11:46:49 +00:00
Lukas Wirth
cd290b427c fix: inlay param hint hiding heurstic is case unsensitive 2021-11-19 12:46:17 +01:00
bors[bot]
2fafe0e37c
Merge #10804
10804: fix: Diagnose using `derive` on non-adt items r=Veykril a=Veykril



Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-19 11:34:22 +00:00
Lukas Wirth
6757910934 fix: Diagnose using derive on non-adt items 2021-11-19 12:10:55 +01:00
bors[bot]
2507442382
Merge #10805
10805: ide: dedupe or merge hover actions r=Veykril a=jhgg

fixes #10780 

Co-authored-by: Jake Heinz <jh@discordapp.com>
2021-11-19 10:59:49 +00:00
Jake Heinz
c28dc00b39 ide: dedupe or merge hover actions 2021-11-19 05:36:07 +00:00
bors[bot]
f0da9406bc
Merge #10803
10803: minor: Simplify r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-18 20:45:20 +00:00
Lukas Wirth
966cae384f minor: Simplify 2021-11-18 21:43:54 +01:00
bors[bot]
cfa26c3ac3
Merge #10798
10798: ide: show go to for function hover return type r=Veykril a=jhgg

I've found myself wanting this...  adds to the hover quick go-to for a function's return type:

![image](https://user-images.githubusercontent.com/5489149/142375722-4a385216-494b-45a4-be1c-59664213b8d6.png)

This is particularly useful when you are hovering over a function in a long chain, like:

```rust
foo.bar().b$0az().some_trait_fn();
```

where `baz`'s return type is not immediately obvious, but the chain is not long enough to trigger chain inlay hints... 

i guess I could just select `foo.bar().baz()` too to get the types too... 

Co-authored-by: Jake Heinz <jh@discordapp.com>
2021-11-18 09:56:44 +00:00
bors[bot]
bf8cf09967
Merge #10796
10796: ide: display static values in hover r=Veykril a=jhgg

Continuation from #10785 - does the same thing, but for `static`'s as well.

Co-authored-by: Jake Heinz <jh@discordapp.com>
2021-11-18 09:48:10 +00:00
bors[bot]
b844d453b2
Merge #10795
10795: Remove unwrap in doc path resolution r=Veykril a=udoprog

I keep hitting this constantly in my project, and I haven't dug very deep into the root cause. But seeing as the project otherwise compiles it appears to be something unsupported is being incorrectly parsed in rust-analyzer which for other cases is handled by returning `None`.

Co-authored-by: John-John Tedro <udoprog@tedro.se>
2021-11-18 09:40:59 +00:00
bors[bot]
8d24f0e60a
Merge #10794
10794: fix: parse the range pat inside the tuple pat r=lnicola a=XFFXFF

fixes #10784 

Co-authored-by: zhoufan <1247714429@qq.com>
2021-11-18 09:33:47 +00:00
Laurențiu Nicola
6196b928a4 Fix proc macro ABI version checks 2021-11-18 10:24:24 +02:00
Jake Heinz
876f44b3ea ide: show go to for function hover return type 2021-11-18 08:00:22 +00:00
Jake Heinz
e8d0989606 ide: display static values in hover 2021-11-18 06:00:51 +00:00
John-John Tedro
76e3feeeb5 Remove unwrap in doc path resolution 2021-11-18 05:20:53 +01:00
bors[bot]
64a73dcfba
Merge #10785
10785: ide: show const value in hover r=jhgg a=jhgg

fixes #10783

I think my original attempt was incorrect, because it looks like `HirDisplay` is used in more places than just the hover.  

So, I've attempted it again in 312eafe, this time specifically just rendering the value in `hover::render`

pictoral:

![image](https://user-images.githubusercontent.com/5489149/142163890-b6aa2ab4-7bd0-4dd3-b35d-5eaa83fffb7f.png)


Co-authored-by: Jake Heinz <jh@discordapp.com>
Co-authored-by: Jake <jh@discordapp.com>
2021-11-18 04:17:16 +00:00
Jake Heinz
aef8882254 more complicated const test 2021-11-18 04:15:02 +00:00
zhoufan
a539b5e693 fix: parse the range pat inside the tuple pat 2021-11-18 11:11:37 +08:00
Lukas Wirth
f72512f1c6 Simplify 2021-11-17 21:02:33 +01:00
Lukas Wirth
91bbc55eed Check for derive attributes by item path, not derive identifier 2021-11-17 20:46:57 +01:00
Jake
d5de7c21b2
Apply suggestions from code review
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-17 09:53:24 -08:00
bors[bot]
32f425d801
Merge #10787
10787: minor: Simplify r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-17 14:55:18 +00:00
Lukas Wirth
6e1ecaef4f Simplify 2021-11-17 15:54:38 +01:00
zhoufan
1f1682ee1e minor: remove duplicate calls 2021-11-17 18:16:25 +08:00
Jake Heinz
312eafe916 maybe this is better?? 2021-11-17 07:02:49 +00:00
Jake Heinz
4fbc4b9356 hir: show const value in hover 2021-11-17 05:49:27 +00:00
bors[bot]
add6cccd4c
Merge #10781
10781: internal: Do not use reference search in `runnables::related_tests` r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-16 20:51:09 +00:00
bors[bot]
1c49667c56
Merge #10778
10778: internal: Skip test/bench attr expansion in resolution instead of collection r=Veykril a=Veykril

This way we skip any path resolving to the test and bench attributes instead of just the lone identifiers(which could very well point to non-builtin attributes).
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-16 20:33:58 +00:00
Lukas Wirth
366499c3be Do not use reference search in runnables::related_tests 2021-11-16 21:32:02 +01:00
Lukas Wirth
0ff380fe17 Simplify 2021-11-16 21:26:34 +01:00
Lukas Wirth
b57289c4cb Skip test/bench attr expansion in resolution instead of collection 2021-11-16 20:23:56 +01:00
bors[bot]
b88b01ecec
Merge #10775
10775: minor: Simplify r=lnicola a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-16 18:52:26 +00:00
Jonas Schievink
445280a1b1 Allow disabling perf access via RA_DISABLE_PERF 2021-11-16 19:42:19 +01:00
Lukas Wirth
f2f89618b7 minor: Simplify 2021-11-16 19:28:32 +01:00
bors[bot]
9f1e26c3f9
Merge #10776
10776: fix: Remove validation of `super` in use paths r=Veykril a=lnicola

Fixes #10770

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-11-16 18:18:47 +00:00
Laurențiu Nicola
b23bebebc0 Remove validation of super in use paths 2021-11-16 20:02:42 +02:00
bors[bot]
35ed853d84
Merge #10769
10769: Add proc macro ABI for rustc 1.58 r=lnicola a=alexjg

This fixes #10766.

I do have some concerns here. The proc macro server API has added three methods to `TokenStream` which I don't really know how to implement in `RustcServer`. Namely `expand_expr`, `before`, and `after`. You'll see that these are currently `unimplemented!` in `crates/proc_macro_server/src/abis/abi_1_58/rustc_server.rs`. I don't have the expertise to fill in the blanks here, it may be necessary to pull in someone who knows a bit more about the proc macro crate.

I think this will only be a problem when actually attempting to expand a macro, so this is probably strictly better than not including the updated ABI at all.

Co-authored-by: Alex Good <alex@memoryandthought.me>
2021-11-16 16:40:51 +00:00
Alex Good
abdb2acbe5
Add proc macro ABI for rustc 1.58 2021-11-16 14:14:08 +00:00
bors[bot]
6c7be6cd84
Merge #10734
10734: fix: add generic parameters in convert to manual impl assist r=Veykril a=TheDoctor314

Fixes #10041.

Co-authored-by: TheDoctor314 <64731940+TheDoctor314@users.noreply.github.com>
2021-11-16 11:27:11 +00:00
Lukas Wirth
92f7db447c minor: Lift out FxIndex{Map/Set} types into ide_db 2021-11-16 12:15:47 +01:00
Lukas Wirth
d2513deb62 fix: Reimplement mapping out of test/bench attributes for runnables 2021-11-16 11:51:24 +01:00
TheDoctor314
58a24de7d8 Fix impl_def_from_trait
Revert "Fix `impl_trait` function to emit correct ast"

This reverts commit 55a4813151.

Fix `impl_def_from_trait`

It now generates the correct `ast::Impl` using
`generate_trait_impl_text` and parses it to form the right node (copied
from the private fn 'make::ast_from_text').
2021-11-15 22:28:22 +05:30
bors[bot]
73668334f0
Merge #10767
10767: minor: Rename intern_macro -> intern_macro_call r=Veykril a=Veykril

We potentially want to intern macro definitions so the names would probably collide
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-14 15:26:58 +00:00
Lukas Wirth
5c0b895f69 Rename intern_macro -> intern_macro_call 2021-11-14 16:25:47 +01:00
bors[bot]
4b9b714b5c
Merge #10759
10759: make `add_missing_match_arms` applicable at the end of the match r=Veykril a=rainy-me

close #10740

Co-authored-by: rainy-me <github@yue.coffee>
2021-11-14 12:05:17 +00:00
rainy-me
1f3da38d94 adjust test case and stop deleting newline 2021-11-14 20:56:28 +09:00
zhoufan
5666046ec9 fix: flyimport triggers on enum variant declarations 2021-11-14 12:16:21 +08:00
Jake Heinz
520ff62f4e flip the default 2021-11-13 23:39:34 +00:00
Jake Heinz
d3d768de0d inlay hints: add the option to always show constructor inlay hints 2021-11-13 23:12:29 +00:00
rainy-me
c9949c040c add missing match arms end of last arm 2021-11-14 02:32:10 +09:00
Wilfred Hughes
f6f6b3a7ad Allow the check command to terminate without output
Cargo will always output something on success:

```
$ cargo check --message-format=json
{"reason":"compiler-artifact", ... snipped ... }
{"reason":"build-finished","success":true}
```

However, rustc does not output anything on success:

```
$ rustc --error-format=json main.rs
$ echo $?
0
```

Restore the behaviour prior to #10517, where an exit code of 0 is
considered good even if nothing is written to stdout.

This enables custom overrideCommand values that use rustc rather than
cargo.
2021-11-12 11:43:20 -08:00
Lukas Wirth
2d7f5891f7 Remove faulty logic for ascending test attributes for runnables 2021-11-11 18:47:24 +01:00
Lukas Wirth
a510021065 Replace some more ide usages of ModuleDef with Definition 2021-11-11 18:20:54 +01: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