Commit graph

23215 commits

Author SHA1 Message Date
Laurențiu Nicola 119e1bafcc Bump notify 2022-10-15 13:03:39 +03:00
Laurențiu Nicola f5bbf9a06a Bump proc-macro2 2022-10-15 13:02:10 +03:00
Laurențiu Nicola 792920f441 Bump pulldown-cmark-to-cmark 2022-10-15 13:00:41 +03:00
Laurențiu Nicola 275848803b Bump mimalloc 2022-10-15 12:59:56 +03:00
Laurențiu Nicola 39777bf941 Bump rowan 2022-10-15 12:58:57 +03:00
Laurențiu Nicola 97eebbfab6 Bump url 2022-10-15 12:57:30 +03:00
Laurențiu Nicola e294640484 Bump libc 2022-10-15 12:55:56 +03:00
Laurențiu Nicola 3a5f6a705e Bump dashmap 2022-10-15 12:54:25 +03:00
Laurențiu Nicola 6e74a22918 Bump home 2022-10-15 12:53:26 +03:00
Laurențiu Nicola bb6990c4c9 Bump tracing 2022-10-15 12:52:34 +03:00
Laurențiu Nicola 50f990c46f Bump smallvec 2022-10-15 12:52:34 +03:00
Laurențiu Nicola cbce0cda08 Bump anyhow, arbitrary, itertools, semver, serde 2022-10-15 12:52:34 +03:00
Laurențiu Nicola df7d39b2ed Bump once_cell 2022-10-08 21:25:11 +03:00
bors 61504c8d95 Auto merge of #13366 - matklad:xflags, r=lnicola
internal: ⬆️ xflags

The main change here should be that flags are not inhereted, so

   $ rust-analyzer analysis-stats . -v -v

would do what it should do

We also no longer Don\'t
2022-10-08 16:46:15 +00:00
Aleksey Kladov 39fa8b5c39 internal: ⬆️ xflags
The main change here should be that flags are not inhereted, so

   $ rust-analyzer analysis-stats . -v -v

would do what it should do

We also no longer Don\'t
2022-10-08 15:35:07 +01:00
bors 8437e4ba58 Auto merge of #13362 - WaffleLapkin:go_to_def_fix_doc_include_str, r=Veykril
fix: Make go-to-def work for `#[doc = include_str!("path")]`

See the added test, go-to-def on `#[doc = include_str!("path$0")]` should navigate to `path`.
2022-10-07 09:56:12 +00:00
Maybe Waffle 1c0ec9f0c8 Fix go-to-def for #[doc = include_str!("path")] 2022-10-07 09:04:41 +00:00
bors a415fb4c4e Auto merge of #13353 - wildbook:fix_type_inference_panic, r=Veykril
Fix assertion failure in type inference (#13352)

Fixes https://github.com/rust-lang/rust-analyzer/issues/13352
2022-10-06 12:33:50 +00:00
bors f2f3528618 Auto merge of #13356 - WaffleLapkin:go_to_def_shadow_include, r=Veykril
minor: Fix go-to-def for shadowed `include*!`

Add a check in go-to-def feature, so that we don't assume any macro named `include`/`include_str`/`include_bytes` is the builtin one.
2022-10-06 06:28:31 +00:00
Maybe Waffle a57ef6b0b1 Fix go-to-def for shadowed include*! 2022-10-06 06:16:39 +00:00
Wildbook 8862fe6ff2 Fix assertion failure in type inference (#13352) 2022-10-05 17:46:56 +02:00
bors 476d043874 Auto merge of #13344 - lowr:patch/change-generic-param-order, r=Veykril
fix: use `BoundVar`s from current generic scope

Fixup for #13335, addresses https://github.com/rust-lang/rust-analyzer/pull/13339#issuecomment-1266654607

Before the change in generic parameter order, `BoundVar`s for trait reference didn't change whether you are in an impl's scope or in an associated item's scope. Now that item's generic params come before its parent's, we need to shift their indices when we are in an associated item's scope.
2022-10-04 18:26:43 +00:00
Ryo Yoshida ded3326a64
fix: use BoundVars from current generic scope 2022-10-05 00:49:00 +09:00
bors b429df2653 Auto merge of #13342 - rust-lang:revert-13328-rustc-proc-macro, r=Veykril
Revert "Add proc-macro dependency to rustc crates"

1. This panics since it indexes into the wrong thing, so fixes https://github.com/rust-lang/rust-analyzer/issues/13340
2. This didn't fix what I thought it would either
Reverts rust-lang/rust-analyzer#13328
2022-10-04 06:18:57 +00:00
Lukas Wirth e0c9e28d1f
Revert "Add proc-macro dependency to rustc crates" 2022-10-04 08:18:01 +02:00
bors 974caaff8f Auto merge of #13339 - lowr:patch/change-generic-param-order, r=Veykril
fix: treat enum variants as generic item on their own

Fixup for #13335

It turns out I tried to merge two procedures into one utility function without noticing the incompatibility.

This time I *did* run analysis-stats on the four crates and confirmed it doesn't crash and this patch doesn't cause regression.
2022-10-03 15:34:32 +00:00
Ryo Yoshida e0a161b2e3
fix: treat enum variants as generic item on their own 2022-10-04 00:07:34 +09:00
bors 5bd98e36bc Auto merge of #13335 - lowr:patch/change-generic-param-order, r=Veykril
internal: change generic parameter order

tl;dr: This PR changes the `Substitution` for trait items and methods like so:

```rust
trait Trait<TP, const CP: usize> { // note the implicit Self as first parameter
  type Type<TC, const CC: usize>;
  fn f<TC, const CC: usize>() {}
}
impl<TP, const CP: usize> S {
  fn f<TC, const CC: usize>() {}
}
```

- before this PR: `[Self, TP, CP, TC, CC]` for each trait item, `[TP, CP, TC, CC]` for `S::f`
- after this PR: `[TC, CC, Self, TP, CP]` for each trait item, `[TC, CC, TP, CP]` for `S::f`

---

This PR "inverts" the generic parameters/arguments of an item and its parent. This is to fulfill [chalk's expectation](d875af0ff1/chalk-solve/src/rust_ir.rs (L498-L502)) on the order of generic arguments in `Substitution`s for generic associated types and it's one step forward for GATs support (hopefully). Although chalk doesn't put any constraint for other items, it feels more natural to get everything aligned than special casing GATs.

One complication is that `TyBuilder` now demands its users to pass in parent's `Substitution` upon construction unless it's obvious that the the item has no parent (e.g. an ADT never has parent). All users *should* already know the parent of the item in question, and without this, it cannot be easily reasoned about whether we're pushing the argument for the item or for its parent.

Some additional notes:
- f8f5a5ea57: This isn't related to the change, but I felt it's nicer.

- 78977cd86c: There's one major change here other than the generic param order: Default arguments are now bound by the same `Binder` as the item in question rather than a `Binder` limited to parameters they can refer to (i.e. arguments that syntactically appear before them). Now that the order of generic parameters is changed, it would be somewhat complicated to make such `Binder`s as before, and the "full" `Binder`s shouldn't be a problem because we already make sure that the default arguments don't refer to the generic arguments after them with `fallback_bound_vars()`.

- 7556f74b16: This is split from 4385d3dcd0 to make it easy to revert if it turns out that the GATs with const generics panic is actually not resolved with this PR. cc #11878 #11957
2022-10-03 12:13:25 +00:00
bors f087ebe6e7 Auto merge of #13338 - Veykril:flycheck, r=Veykril
Prioritize restart messages in flycheck

cc https://github.com/rust-lang/rust-analyzer/issues/12936#issuecomment-1264670905
2022-10-03 12:05:11 +00:00
Lukas Wirth 5916803555 Prioritize restart messages in flycheck 2022-10-03 14:03:54 +02:00
Ryo Yoshida 7556f74b16
Remove hack 2022-10-03 02:40:12 +09:00
Ryo Yoshida 78977cd86c
Adapt to the new generic parameter/argument order 2022-10-03 02:40:07 +09:00
Ryo Yoshida 4385d3dcd0
Change generic parameter/argument order
This commit "inverts" the order of generic parameters/arguments of an
item and its parent. This is to fulfill chalk's expectation on the
order of `Substitution` for generic associated types and it's one step
forward for their support (hopefully).

Although chalk doesn't put any constraint on the order of `Substitution`
for other items, it feels natural to get everything aligned rather than
special casing GATs.

One complication is that `TyBuilder` now demands its users to pass in
parent's `Substitution` upon construction unless it's obvious that the
the item has no parent (e.g. an ADT never has parent). All users
*should* already know the parent of the item in question, and without
this, it cannot be easily reasoned about whether we're pushing the
argument for the item or for its parent.

Quick comparison of how this commit changes `Substitution`:

```rust
trait Trait<TP, const CP: usize> {
  type Type<TC, const CC: usize> = ();
  fn f<TC, const CC: usize>() {}
}
```

- before this commit: `[Self, TP, CP, TC, CC]` for each trait item
- after this commit: `[TC, CC, Self, TP, CP]` for each trait item
2022-10-03 02:39:25 +09:00
Ryo Yoshida f8f5a5ea57
refactor: use cast() instead of interning GenericArgData 2022-10-02 22:40:55 +09:00
bors 5c28ad1932 Auto merge of #13328 - Veykril:rustc-proc-macro, r=Veykril
Add proc-macro dependency to rustc crates
2022-10-01 19:29:33 +00:00
Lukas Wirth 870825b376 Add proc-macro dependency to rustc crates 2022-10-01 21:29:14 +02:00
bors cdc5493901 Auto merge of #13327 - Veykril:proc-macro-srv-config, r=Veykril
Add config for supplying sysroot path
2022-10-01 19:17:36 +00:00
Lukas Wirth 5424c51158 Add config for supplying sysroot path 2022-10-01 21:17:06 +02:00
bors bf5cad8e77 Auto merge of #13326 - Veykril:proc-macro-srv-config, r=Veykril
Do not use the sysroot proc-macro server when a server path is given explicitly
2022-10-01 17:51:47 +00:00
Lukas Wirth 26cf250ccc Do not use the sysroot proc-macro server when a server path is given explicitly 2022-10-01 19:50:34 +02:00
bors f88293f777 Auto merge of #13324 - Veykril:trait-impl-completion, r=Veykril
Fix trait impl item completions using macro file text ranges

Fixes https://github.com/rust-lang/rust-analyzer/issues/13323
2022-10-01 13:35:08 +00:00
Lukas Wirth bfd5f00bfc Fix trait impl item completions using macro file text ranges 2022-10-01 15:34:45 +02:00
bors 5b7e40014e Auto merge of #13321 - Veykril:format-str-args, r=Veykril
Fix move_format_string_arg being tokentree unaware

Fixes https://github.com/rust-lang/rust-analyzer/issues/13261
2022-09-30 22:42:40 +00:00
Lukas Wirth 3ad0334718 Fix move_format_string_arg being tokentree unaware 2022-10-01 00:42:16 +02:00
bors 2293949bbf Auto merge of #13318 - Veykril:annotations, r=Veykril
Fix annotations not resolving when lens location is set to whole item

Fixes https://github.com/rust-lang/rust-analyzer/issues/13310
2022-09-30 22:31:05 +00:00
bors 17363b341e Auto merge of #13320 - Veykril:ty-alias-hover, r=Veykril
Fix type alias hovers not rendering generic parameters
2022-09-30 22:22:24 +00:00
Lukas Wirth 77cfc9b392 Fix type alias hovers not rendering generic parameters 2022-10-01 00:21:29 +02:00
Lukas Wirth 3cd57c425a Fix annotations not resolving when lens location is set to whole item 2022-10-01 00:18:23 +02:00
bors 8132b42b73 Auto merge of #13319 - Veykril:req-retry, r=Veykril
Fix requests not being retried anymore
2022-09-30 22:12:48 +00:00
Lukas Wirth 8c433c7296 Fix requests not being retried anymore 2022-10-01 00:07:33 +02:00