Commit graph

149345 commits

Author SHA1 Message Date
Lukas Wirth
8f8f440cb2 Skip match exhaustiveness checking if pattern type contains errors 2024-07-03 08:31:40 +02:00
Lukas Wirth
0fef8f01a3 Move lifetimes in front of type and const params but after self 2024-07-02 14:17:34 +02:00
Lukas Wirth
99e432d253 Make GenericParams::lifetimes private 2024-07-02 13:45:53 +02:00
Lukas Wirth
446e15484c Make GenericParams::where_predicates private 2024-07-02 13:45:50 +02:00
Lukas Wirth
1da9ade53d Make GenericParams::type_or_consts private 2024-07-02 13:45:48 +02:00
Lukas Wirth
5fa5378856 Fix lifetime parameters moving paramter defaults 2024-07-02 12:34:32 +02:00
Lukas Wirth
fe9337311c Improve error message when the proc-macro server unexpectedly exits 2024-07-01 14:30:21 +02:00
bors
94e5efdab1 Auto merge of #17495 - listochkin:pass-cargo-extra-args-for-debugger, r=Veykril
pass cargo extra args when debugging

fixes #17128
2024-07-01 10:34:09 +00:00
bors
29fbc2414d Auto merge of #17494 - harrysarson:harry/keep-braces, r=Veykril
do not normalize `use foo::{self}` to `use foo`

It changes behaviour and can cause collisions. E.g. for the following snippet

```rs
mod foo {

    pub mod bar {}

    pub const bar: i32 = 8;
}

// transforming the below to `use foo::bar;` causes the error:
//
//   the name `bar` is defined multiple times
use foo::bar::{self};

const bar: u32 = 99;

fn main() {
    let local_bar = bar;
}
```

we still normalize

```rs
use foo::bar;
use foo::bar::{self};
```

to `use foo::bar;` because this cannot cause collisions.

See: https://github.com/rust-lang/rust-analyzer/pull/17140#issuecomment-2079189725
2024-07-01 10:20:01 +00:00
bors
dffbad50c1 Auto merge of #17522 - Veykril:comptimes, r=Veykril
internal: Cut compiletimes slightly
2024-07-01 08:43:11 +00:00
Lukas Wirth
d40bc51e3d Bump rustc_pattern_analysis 2024-06-30 18:41:55 +02:00
Lukas Wirth
1653889bad Remove serde flag from indexmap dependency 2024-06-30 18:14:53 +02:00
bors
2cac9a5684 Auto merge of #17520 - Veykril:slim-proc-macro-api, r=Veykril
internal: Cleanup proc-macro-srv some more
2024-06-30 15:12:50 +00:00
Lukas Wirth
fefcb46c3f Arc proc-macro expander paths 2024-06-30 17:03:03 +02:00
Lukas Wirth
45362de42f Abstract proc-macro-srv protocol format 2024-06-30 16:56:30 +02:00
Lukas Wirth
b1518b262e Simplify 2024-06-30 16:43:22 +02:00
Lukas Wirth
58286ccbd1 Actual dummy server for the server cli 2024-06-30 16:34:06 +02:00
Lukas Wirth
f3b3eef221 Fix proc-macro-test build script 2024-06-30 16:26:39 +02:00
Lukas Wirth
4c6235948d Faster env snapshotting in proc-macro-srv 2024-06-30 16:10:20 +02:00
Lukas Wirth
ef4b97490f Move proc-macro-test test path fetching from include to env var 2024-06-30 15:37:00 +02:00
Lukas Wirth
d8a74a2b60 Rename proc-macro-srv::server to server_impl 2024-06-30 15:36:46 +02:00
Lukas Wirth
05c77898d9 Move proc-macro-srv RUSTC_VERSION fetching from include to env var 2024-06-30 15:28:31 +02:00
Lukas Wirth
f4c2ac456e Remove inline rust_2018_idioms, unused_lifetimes lint warn, Cargo.toml already enforces this 2024-06-30 15:23:54 +02:00
Lukas Wirth
8c526eefd3 Move interior mutability into ProcMacroSrvProcess 2024-06-30 15:22:39 +02:00
bors
64f7945d52 Auto merge of #17519 - Veykril:slim-proc-macro-api, r=Veykril
internal: Move dylib version stuff to proc-macro-srv

The client no longer reads the proc-macro versions, so this has no need to be in the api crate
2024-06-30 13:07:21 +00:00
Lukas Wirth
fd9dce7fb8 Move dylib version stuff to proc-macro-srv 2024-06-30 15:05:35 +02:00
bors
2e8b977a2d Auto merge of #17516 - kilpkonn:master, r=kilpkonn
Quality of life improvements to term search

Basically two things:
- Allow optionally disabling "borrow checking" restrictions on term search code assists. Sometimes it is better to get invalid suggestions and fix borrow checking issues later...
- Remove explicit generics in generated expressions. I find it quite rare that one writes `None::<T>` instead of `None`.
2024-06-30 12:41:22 +00:00
bors
ba01c0ab39 Auto merge of #17467 - winstxnhdw:bool-to-enum, r=Veykril
feat: add bool_to_enum assist for parameters

## Summary

This PR adds parameter support for `bool_to_enum` assists. Essentially, the assist can now transform this:

```rs
fn function($0foo: bool) {
    if foo {
        println!("foo");
    }
}
```

To this,

```rs
#[derive(PartialEq, Eq)]
enum Bool { True, False }

fn function(foo: Bool) {
    if foo == Bool::True {
        println!("foo");
    }
}
```

Thanks to `@/davidbarsky`  for the test skeleton (:

Closes #17400
2024-06-30 12:26:07 +00:00
Tavo Annus
585e4d6609 Do not explicit generics to generated expressions 2024-06-30 15:19:19 +03:00
bors
079ee28362 Auto merge of #17518 - Veykril:expr-scopes-mac, r=Veykril
fix: Fix expression scope calculation when within macro expansions
2024-06-30 12:11:12 +00:00
Lukas Wirth
eb72a9e2fd Simplify 2024-06-30 14:00:55 +02:00
Lukas Wirth
4453fd49cd Fix expression scope calculation when within macro expansions 2024-06-30 13:26:17 +02:00
Lukas Wirth
00fc75885f Simplify unresolved proc-macro handling 2024-06-30 13:26:13 +02:00
bors
acdfab645f Auto merge of #17513 - roife:fix-issue-17500, r=Veykril
fix: completions after async kw

fix #17500

### Changes

1. fix completions after async kw
2. fix completions for `async` kw in trait
2024-06-30 11:10:59 +00:00
roife
71bc01370c fix: completions after async kw 2024-06-29 22:23:54 +08:00
Tavo Annus
8fd7ae9759 Make borrow checking configurable for term search 2024-06-29 12:24:08 +03:00
Shoyu Vanilla
4b7fb6a3db Use proper ImplTraits in insert_inference_vars_for_impl_trait 2024-06-27 23:51:33 +09:00
Shoyu Vanilla
2a2532687a Add a regression test for issue 17199 that causes stack overflow 2024-06-27 23:48:15 +09:00
Lukas Wirth
432e6662fb
Update triagebot.toml 2024-06-27 10:32:13 +02:00
Harry Sarson
742c2ea621 do not normalize use foo::{self} to use foo
It changes behaviour and can cause collisions. E.g. for the following snippet

```rs
mod foo {

    pub mod bar {}

    pub const bar: i32 = 8;
}

// tranforming the below to `use foo::bar;` causes the error:
//
//   the name `bar` is defined multiple times
use foo::bar::{self};

const bar: u32 = 99;

fn main() {
    let local_bar = bar;
}
```

we still normalize

```rs
use foo::bar;
use foo::bar::{self};
```

to `use foo::bar;` because this cannot cause collisions.

See: https://github.com/rust-lang/rust-analyzer/pull/17140#issuecomment-2079189725
2024-06-26 08:58:13 +01:00
Laurențiu Nicola
3d47efc491 Bump actions/download-artifact and upload-artifact 2024-06-25 20:32:09 +03:00
Andrei Listochkin
b906d4100d
pass cargo extra args when debug
fixes #17128
2024-06-25 18:13:08 +01:00
winstxnhdw
a456692c16
feat: add bool_to_enum assist for parameters 2024-06-25 01:39:16 +08:00
winstxnhdw
86c67aa736
tests: add test for param transformation 2024-06-25 01:39:11 +08:00
bors
2445d537e6 Auto merge of #17489 - Veykril:tt-iter, r=Veykril
minro: move tt-iter into tt crate
2024-06-24 12:48:53 +00:00
Lukas Wirth
3db288136e move tt-iter into tt crate 2024-06-24 14:47:21 +02:00
bors
a16d63c8b3 Auto merge of #17488 - alibektas:17485/duplicate_snippets, r=alibektas
minor : Fix duplicate snippets showing up on hover.

With each `config::apply_change` duplicate configs were being added.
Now we first drain the vec that holds these and then start adding. This fixes #17485
2024-06-24 11:34:13 +00:00
Ali Bektas
f93d2ddb40 Apply minor changes 2024-06-24 13:15:33 +02:00
Ali Bektas
6145b1f34f minor : Fix duplicate snippets showing up on hover.
With each `config::apply_change` duplicate configs were being added.
Now we first drain the vec that holds these and then start adding.
2024-06-24 13:01:40 +02:00
bors
7cf4cc7d90 Auto merge of #17487 - Veykril:ty-perf-stuff, r=Veykril
internal: Some more small memory optimizations

Not a big impact on metrics, though there are some more savings in queries mainly used by the IDE layer from this
2024-06-24 09:50:35 +00:00