Commit graph

258224 commits

Author SHA1 Message Date
bors
2faa2cb0db Auto merge of #17544 - MikeWalrus:inlay-hint-generic-param-name, r=Veykril
feat: add inlay hints for generic parameters

fixes #11091

By default, only hints for const generic parameters are shown, and this can be configured through `rust-analyzer.inlayHints.genericParameterHints.enable`.

Probably needs more testing.
2024-07-10 09:50:40 +00:00
Lukas Wirth
7da4615763
Remove dead code in config.rs 2024-07-10 11:49:11 +02:00
bors
5445aef843 Auto merge of #17558 - beetrees:fix-double-rounding, r=Veykril
fix: Fix double rounding of `f32` literals

Fixes #17556 by delaying parsing until the type is known. Also adds a test to check the issue is fixed.
2024-07-08 16:10:58 +00:00
bors
fa29aa3a4f Auto merge of #17565 - mo8it:remove-version-check, r=Veykril
Remove version check before using `--keep-going`

See https://github.com/rust-lang/rust-analyzer/pull/17561#issuecomment-2214227971 by `@lnicola`
2024-07-08 15:56:50 +00:00
beetrees
da41ae7b3a
fix: Fix double rounding of f32 literals 2024-07-08 16:31:32 +01:00
mo8it
a8e90c8f4d Remove version check before using --keep-going 2024-07-08 16:41:12 +02:00
Liao Junxuan
4988a497fd
feat: add inlay hints for generic parameters
fixes #11091

By default, only hints for const generic parameters are shown.
2024-07-08 19:11:41 +08:00
bors
7e3303de2f Auto merge of #17561 - mo8it:keep-going, r=Veykril
Add --keep-going to the check command

Fixes https://github.com/rust-lang/rustlings/issues/1628

`@Veykril` I am not sure about what you meant with "unconditionally" in https://github.com/rust-lang/rustlings/issues/1628#issuecomment-2212492230, but I didn't find out how to get the version of the toolchain anyway to do a check like in [this snippet](a5b21ea0aa/crates/project-model/src/build_scripts.rs (L125-L127)). Is this check even required if rust-analyzer was installed with the toolchain?

`--keep-going` was [stabilized in 1.74](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-174-2023-11-16)
2024-07-08 08:29:18 +00:00
mo8it
4b482bc90d Add --keep-going to the check command 2024-07-07 18:37:02 +02:00
bors
fafacf3e9a Auto merge of #17555 - Veykril:grammar-inline, r=Veykril
internal: Inline generated syntax methods
2024-07-07 09:21:04 +00:00
Lukas Wirth
0ee4ff2496 Inline all the things 2024-07-07 11:18:40 +02:00
Lukas Wirth
87a62044fe HasGenericArgs syntax trait 2024-07-07 11:18:28 +02:00
bors
9a04253016 Auto merge of #17523 - wada314:master, r=Veykril
Add an option to use "::" for the external crate prefix.

Fixes #11823 .
Hi I'm very new to rust-analyzer and not sure how the review process are. Can somebody take a look at this PR? thanks!
2024-07-07 08:32:46 +00:00
bors
3c5595a06d Auto merge of #17554 - Veykril:lsp-violation, r=Veykril
fix: Fix callHierarchy LSP violation

Fixes https://github.com/rust-lang/rust-analyzer/issues/14839
2024-07-07 08:16:23 +00:00
Lukas Wirth
ba9f93e845 fix: Fix callHierarchy LSP violation 2024-07-07 10:14:47 +02:00
bors
f2a569006a Auto merge of #17553 - Veykril:simplify-profile, r=Veykril
Move remaining codegen things to `xtask codegen`
2024-07-07 07:25:30 +00:00
Lukas Wirth
77bca5306c Fix stale reference in architecture.md 2024-07-07 09:19:09 +02:00
Lukas Wirth
7a2c8c2b39 Run codegen commands as tests if their results are commited 2024-07-07 09:14:50 +02:00
Lukas Wirth
6f346c91be Re-implement tidy as an xtask action 2024-07-07 09:12:16 +02:00
Lukas Wirth
d00f4749b1 re-generate feature docs in release 2024-07-07 09:01:35 +02:00
Lukas Wirth
58ec8b2028 Drop sourcegen 2024-07-07 09:00:19 +02:00
Lukas Wirth
2d14f47eb7 Move feature-doc generation to xtask codegen 2024-07-07 09:00:18 +02:00
Lukas Wirth
4465fff75e Update hover test fixture 2024-07-07 08:55:10 +02:00
Lukas Wirth
e96601bbe0 Move parser test generation to xtask 2024-07-07 08:51:19 +02:00
Lukas Wirth
004a24e808 Allow new clippy lint in test 2024-07-07 08:41:41 +02:00
Lukas Wirth
7deebd6792 Fix stop_watch on linux 2024-07-07 08:40:41 +02:00
Lukas Wirth
7dfc583b0e Update generated lint definitions 2024-07-07 08:35:18 +02:00
Lukas Wirth
20dc1b615d Drop unused profile things 2024-07-07 08:24:10 +02:00
bors
49984c3689 Auto merge of #17552 - Veykril:fn-param-comp-fix, r=Veykril
fix: Fix parameter completions using macro expanded source ranges

Fixes https://github.com/rust-lang/rust-analyzer/issues/17550
2024-07-07 06:12:47 +00:00
Lukas Wirth
faa13cbe20 fix: Fix parameter completions using macro expanded source ranges 2024-07-07 08:11:16 +02:00
bors
cf69ccd6d7 Auto merge of #17527 - Veykril:caps-config, r=Veykril
internal: Move capability querying out of the config module
2024-07-07 05:56:55 +00:00
Lukas Wirth
070f95c12e Move capability querying out of the config module 2024-07-07 07:42:12 +02:00
bors
9194c7a5e9 Auto merge of #17551 - Veykril:has-errors, r=Veykril
Also mark InferenceResult::has_errors flag when there are error types

Should work around https://github.com/rust-lang/rust-analyzer/issues/15090#issuecomment-2211647133
2024-07-06 18:56:23 +00:00
Lukas Wirth
725e15fc80 Also mark InferenceResult::has_errors flag when there are error types 2024-07-06 20:45:23 +02:00
bors
e907f8175c Auto merge of #17549 - Veykril:runnables-fix, r=Veykril
fix: Fix runnables being incorrectly constructed

I've misunderstood parts of the code here which caused runnables to arbitrarily break :) (I have yet to understand the conditions that made them break though, there is some odd caching involved I feel like ...)
Fixes https://github.com/rust-lang/rust-analyzer/issues/17402
2024-07-06 18:24:30 +00:00
Lukas Wirth
807fdd6ab1 fix: Fix runnables being incorrectly constructed 2024-07-06 20:23:14 +02:00
bors
162ecedd99 Auto merge of #17548 - Veykril:debug-fix, r=Veykril
fix: Fix passing `message-format` after -- in debugging

Fixes https://github.com/rust-lang/rust-analyzer/pull/17495#issuecomment-2211717224
2024-07-06 16:04:53 +00:00
Lukas Wirth
28981813e6 Fix passing message-format after -- in debugging 2024-07-06 18:03:33 +02:00
bors
98238b53b9 Auto merge of #17547 - Veykril:runnables-env, r=Veykril
internal: Clean up runnable lsp extension

This feels like a natural addition to me, and also allows us to drop the expect-test hardcoding from the extension. Additionally, `cargoExtraArgs` is pointless, all the client will do is merge it with `cargoArgs` so the server can do that instead of delegating that to the client.
2024-07-06 15:02:41 +00:00
Lukas Wirth
ac4e6c3046 Don't emit current dir as cwd for runnables 2024-07-06 16:44:57 +02:00
Lukas Wirth
9959546c8a Flatten cargoExtraArgs away from the runnable lsp extension 2024-07-06 16:36:27 +02:00
Lukas Wirth
0859772dbe Add environment to runnable lsp extension 2024-07-06 16:20:25 +02:00
bors
e33dcc6ab2 Auto merge of #17508 - jjoeldaniel:landing-page, r=Veykril
feat: Add landing/faq walkthrough pages

This is a basic implementation of a landing and FAQ page; I've included the bare-bones information as well as a [recommended section on inlay hints](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/Landing.20Page/near/446135321).

I've also added `rust-analyzer: Open Walkthrough` and `rust-analyzer: Open FAQ` commands for ease of access.

I am hoping to create a small list of FAQ to include that might be useful as well as any other information I may have missed in the landing page. Feel free to share any suggestions!

![landing/faq page demo](https://github.com/rust-lang/rust-analyzer/assets/100006388/4644e4f0-4555-4b29-83c1-b048084ad63d)

cc #13351
2024-07-06 13:59:36 +00:00
bors
c412ea9ac4 Auto merge of #17546 - Veykril:unresolved-self, r=Veykril
internal: Diagnose unresolved self value in path expression
2024-07-06 13:46:01 +00:00
Lukas Wirth
e8be2a0ac5 Diagnose unresolved self value in path expression 2024-07-06 15:44:12 +02:00
bors
fc92ee8f24 Auto merge of #17541 - ShoyuVanilla:nested-impl-traits, r=Veykril
Disallow nested impl traits

Fixes #17498

The above issue is due to formatting self referencing, recursive bound like `Implemented(^0.0: TraitId(0)<[?0 := ^0.0]>)` on the codes like;

```rust
trait Foo<T> {}

trait Bar {}

fn test(foo: impl Foo<impl Bar>) { ... }
```

When lowering predicate `impl Foo<impl Bar>` in `trait_environment_query`, the outer `impl Foo<...>` is treated as predicates, so the first `TypeRef` that passes the following code is `impl Bar`;

cae997e338/crates/hir-ty/src/lower.rs (L376-L400)

and thus the `idx` is `0` in the above context.

But the following code sets `self_ty` as the `BoundVar` with `idx = 0` because the target param id for predicate  `impl Foo<...>` is `0` since `impl Foo` is the first generic-like parameter of `fn test`;

cae997e338/crates/hir-ty/src/lower.rs (L998-L1025)

For the codes like;

```rust
trait Foo {
    type Assoc;
}

trait Bar {}

fn test(foo: impl Foo<Assoc = impl Bar>) { ... }
```

similar recursive bound doesn't happen because the following codes ***"count the number of `impl Trait` things that appear before the target of our `bound`."***

cae997e338/crates/hir-ty/src/lower.rs (L1168-L1199)

Instead of doing similar thing like nested `impl Foo<impl Bar>` thing, this PR lowers such nested impl traits into error types in the similar manner as the rustc does in the following lines (and of course, allows lowering and inferencing nested impl traits for the cases that rustc permits);

- e2cf31a614/compiler/rustc_ast_passes/src/ast_validation.rs (L802-L813)
- 7b21c18fe4/compiler/rustc_ast_passes/src/ast_validation.rs (L1299-L1314)

(Though rustc emits [E0666😈](https://doc.rust-lang.org/error_codes/E0666.html), I skipped diagnostics since gathering diagnostics in `hir-def` has no conventions so far 😅)
2024-07-05 10:28:30 +00:00
Shoyu Vanilla
90814f4170 Disallow nested impl traits 2024-07-04 23:31:55 +09:00
bors
58bf5936c0 Auto merge of #17536 - Veykril:syntax-diags, r=Veykril
fix: Don't emit semantic diagnostics in files with a lot of syntax errors

These will only add to the noise when something very unexpected breaks or where parser recovery fails to kick in.
2024-07-03 09:01:48 +00:00
Lukas Wirth
87da256395 fix: Don't emit semantic diagnostics in files with a lot of syntax errors 2024-07-03 10:59:46 +02:00
bors
ef54168778 Auto merge of #17535 - Veykril:macro-def-syn, r=Veykril
fix: Fix up the syntax tree for macro 2.0

Fixes https://github.com/rust-lang/rust-analyzer/issues/10266

This change is trivial now that we don't have a token map anymore
2024-07-03 08:46:16 +00:00