Commit graph

16347 commits

Author SHA1 Message Date
Chayim Refael Friedman
89a72c78fc Make edition per-token, not per-file
More correctly, *also* per-token. Because as it turns out, while the top-level edition affects parsing (I think), the per-token edition affects escaping of identifiers/keywords.
2025-01-09 05:43:08 +02:00
Chayim Refael Friedman
13e302c324 Fix actual token lookup in completion's expand()
It should be left biased, not right biased, because when e.g. the use has typed `h` then requested completion, the `h` is what we want to find, not the next token (which might indeed be inside a macro call).

I'm not sure why I wrote `right_biased()` to begin with (I remember I had a reason and not just "both should work"), I might've copied the code in `expand_and_analyze()` (which is wrong, because there it lookups on the speculative file, where right biased will always find the correct token and left biased not).

This is still not perfect, because there might not be an identifier already typed then we might still end up in a macro call, but this is the best we can do.
2025-01-09 05:22:14 +02:00
Giga Bowser
3d6c2f2ea1 minor: Use placeholders in unwrap_return_type 2025-01-08 18:12:06 -06:00
Giga Bowser
9b6b629334 internal: Migrate unwrap_return_type assist to use SyntaxEditor
Also changes `make::expr_empty_block()` to return `ast::BlockExpr` instead of `ast::Expr`
2025-01-08 18:12:06 -06:00
Giga Bowser
4001c468dd internal: Migrate wrap_return_type assist to use SyntaxEditor 2025-01-08 15:19:10 -06:00
Nicholas Rishel
253bba044e Add config setting which allows adding additional include paths to the VFS. 2025-01-08 10:57:46 -08:00
Vishruth-Thimmaiah
8d1ae29294
refactor test helpers within ide-completions 2025-01-08 23:51:18 +05:30
qjerome
93d08b7c77
fix: requested changed 2025-01-08 14:47:46 +01:00
qjerome
c59ecb3af4
fix: autogenerate files 2025-01-08 14:47:21 +01:00
qjerome
2be4ce099d
refactor: struct holding cargo cfgs settings 2025-01-08 11:20:08 +01:00
Lukas Wirth
8982535dc2
Merge pull request #18884 from Veykril/push-xwqkorxozzkq
fix: Fix `env`/`option_env` macro check disregarding macro_rules definitions
2025-01-08 10:14:51 +00:00
Lukas Wirth
bc1a7fa834 fix: Fix env/option_env macro check disregarding macro_rules definitions 2025-01-08 10:59:58 +01:00
Lukas Wirth
16721e33dc
Merge pull request #18855 from Giga-Bowser/migrate-if-let
internal: Migrate `if let` replacement assists to `SyntaxEditor`
2025-01-08 08:59:42 +00:00
Ralf Jung
2d180714e1 Merge from rustc 2025-01-08 09:23:40 +01:00
Ralf Jung
fc4a52f598 Preparing for merge from rustc 2025-01-08 09:23:36 +01:00
Laurențiu Nicola
cc07c98314 Fix test-fixture autopublishing 2025-01-08 10:19:46 +02:00
Oli Scherer
4a8773a3af Rename PatKind::Lit to Expr 2025-01-08 07:34:59 +00:00
Oli Scherer
c9365dd09f Exhaustively handle expressions in patterns 2025-01-08 07:33:46 +00:00
bors
1f81f90689 Auto merge of #135207 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? `@ghost`
2025-01-08 01:08:24 +00:00
Urgau
eadb76ec98 Include rustc and rustdoc book in replace-version-placeholder 2025-01-07 22:46:18 +01:00
Chayim Refael Friedman
bce64358b7 Fix a bug with missing binding in MBE
We should immediately mark them as finished, on the first entry.

The funny (or sad) part was that this bug was pre-existing, but previously to #18327, it was causing us to generate bindings non-stop, 65535 of them, until we get to the hardcoded repetition limit, and then throw it all away. And it was so Blazingly Fast that nobody noticed.

With #18327 however, this is still what happens, except that now instead of *merging* the fragments into the result, we write them on-demand. Meaning that when we hit the limit, we've already written all previous entries. This is a minor change, I thought for myself when I was writing this, and it's actually for the better, so who cares. Minor change? Not so fast. This caused us to emit 65535 repetitions, all of which the MBE infra needs to handle when calling other macros with the expansion, and convert to rowan tree etc., which resulted a *massive* hang.

The test (and also `analysis-stats`) used to crash with stack overflow on this macro, because we were dropping some crazily deep rowan tree. Now they work properly. Because I am lazy, and also because I could not find the exact conditions that causes a macro match but with a missing binding, I just copied all macros from tracing. Easy.
2025-01-07 23:04:53 +02:00
Matthias Krüger
5dd21df7c1
Rollup merge of #135200 - jieyouxu:stabilize-style-edition, r=ytmimi,compiler-errors
rustfmt: drop nightly-gating of the `--style-edition` flag registration

Follow-up to [Stabilize `style_edition = "2024"` in-tree #134929](https://github.com/rust-lang/rust/pull/134929).

#134929 un-nightly-gated the *read* of `--style-edition`, but didn't also un-nightly-gate the *registration*/*declaration* of the `--style-edition` flag itself. Reading `--style-edition` on a non-nightly channel (e.g. beta) will thus panic because `--style-edition` is never declared.

This PR also un-nightly-gates the registration. Not sure how to write a regression test for this, because this *requires* the non-nightly / beta channel. Though existing tests do fail (albeit indirectly).

Checking if this fixes the panic against beta in https://github.com/rust-lang/rust/pull/135197.

r? rustfmt
2025-01-07 21:39:42 +01:00
Matthias Krüger
a20d0d5a5c
Rollup merge of #134989 - max-niederman:guard-patterns-hir, r=oli-obk
Lower Guard Patterns to HIR.

Implements lowering of [guard patterns](https://rust-lang.github.io/rfcs/3637-guard-patterns.html) (see the [tracking issue](#129967)) to HIR.
2025-01-07 21:39:40 +01:00
Laurențiu Nicola
e103ab1608 Merge from rust-lang/rust 2025-01-07 17:57:53 +02:00
Laurențiu Nicola
aa1ef0a432 Preparing for merge from rust-lang/rust 2025-01-07 17:57:18 +02:00
Mara Bos
585c9765a2 Update tests. 2025-01-07 16:04:14 +01:00
Guillaume Gomez
ec266207cb
Rollup merge of #135198 - joshtriplett:str-is-a-type, r=jieyouxu
Avoid naming variables `str`

This renames variables named `str` to other names, to make sure `str`
always refers to a type.

It's confusing to read code where `str` (or another standard type name)
is used as an identifier. It also produces misleading syntax
highlighting.
2025-01-07 15:30:28 +01:00
Guillaume Gomez
ccaa0f331c
Rollup merge of #135193 - onur-ozkan:tidy-cache-invalidation, r=jieyouxu
don't bless `proc_macro_deps.rs` unless it's necessary

Running tidy with `--bless` flag is breaking the build cache as tidy updates mtime of `proc_macro_deps.rs` (https://github.com/rust-lang/rust/pull/134865) unconditionally and that leads cargo to recompile tidy.

This patch fixes that.
2025-01-07 15:30:27 +01:00
Lukas Wirth
8e4409cce3
Merge pull request #18870 from Veykril/push-vnpsptpolyol
Drop unnecessary tracing::warn
2025-01-07 13:55:28 +00:00
Lukas Wirth
21faec1fec
Merge pull request #18867 from Veykril/push-ntmxlropxkrr
internal: target-triple -> target-tuple + version fetching cleanup
2025-01-07 13:46:58 +00:00
Lukas Wirth
b039d3fc5c Drop unnecessary tracing::warn
We already emit an error
2025-01-07 14:40:00 +01:00
Lukas Wirth
380439c5f3 Add some smoke tests to toolchain_info 2025-01-07 14:33:24 +01:00
Lukas Wirth
d28a0b8fcd Align toolchain version fetching with other toolchain info querying
Fix --target flag argument order in rustc_cfg fetching
2025-01-07 14:30:46 +01:00
Lukas Wirth
05770f2599 target-triple -> target-tuple 2025-01-07 14:25:43 +01:00
Lukas Wirth
c360bf5517
Merge pull request #18788 from Veykril/push-zxystwnotuvq
Remove `rust-analyzer.cargo.sysrootQueryMetadata` config again
2025-01-07 13:14:29 +00:00
Lukas Wirth
764ce49445 Remove rust-analyzer.cargo.sysrootQueryMetadata config again 2025-01-07 14:00:22 +01:00
许杰友 Jieyou Xu (Joe)
b77eb96baa rustfmt: drop nightly-gating of the --style-edition flag registration 2025-01-07 20:49:29 +08:00
Josh Triplett
bb6bbfa13f Avoid naming variables str
This renames variables named `str` to other names, to make sure `str`
always refers to a type.

It's confusing to read code where `str` (or another standard type name)
is used as an identifier. It also produces misleading syntax
highlighting.
2025-01-07 14:30:02 +02:00
Lukas Wirth
f9a3c4122c
Merge pull request #18864 from alexkirsz/alexkirsz/fix-diagnostics-clearing
fix: Fix diagnostics not clearing between flychecks
2025-01-07 12:16:18 +00:00
Chayim Refael Friedman
3f2f3e5180
Merge pull request #18832 from vishruth-thimmaiah/fix_string_comp
fix: do not offer completions within macro strings
2025-01-07 12:11:59 +00:00
Bogdan Mircea
9fb7c15339 project-model: fix JSON project PackageRoot buildfile inclusion 2025-01-07 13:47:17 +02:00
Vishruth-Thimmaiah
09a4ac5e8b
fix: do not offer completions within macro strings 2025-01-07 17:02:28 +05:30
Alex Kirszenberg
4d3e6feb2f lint 2025-01-07 12:07:37 +01:00
Alex Kirszenberg
9294965217 fix: Fix diagnostics not clearing between flychecks 2025-01-07 11:11:04 +01:00
onur-ozkan
b0324cc108 don't bless proc_macro_deps.rs unless it's necessary
Running tidy with `--bless` flag is breaking the build cache as tidy updates mtime
of `proc_macro_deps.rs` unconditionally and that leads cargo to recompile tidy.

This patch fixes that.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-07 09:44:05 +00:00
Laurențiu Nicola
4b387254be Set test-utils dependency version, since it's now being published 2025-01-07 09:51:57 +02:00
bors
fb546ee09b Auto merge of #135173 - pietroalbini:pa-fix-rvp, r=workingjubilee
Avoid replacing the definition of `CURRENT_RUSTC_VERSION`

Before this PR, replace-version-placeholder hardcoded the path defining CURRENT_RUSTC_VERSION (to avoid replacing it). After a refactor moved the file defining it without changing the hardcoded path, the tool started replacing the constant itself with the version number.

To avoid this from happening in the future, this changes the definition of the constant to avoid the tool from ever matching it.

r? `@workingjubilee`
2025-01-07 07:21:09 +00:00
Laurențiu Nicola
8db8e3cc37
Merge pull request #18853 from ChayimFriedman2/no-completion
Fix case where completion inside macro that expands to `#[test]` was unavailable
2025-01-07 06:44:50 +00:00
David Barsky
e02b3ec9cc fix: clear diagnostics on cancel unconditionally, fixing #18854 2025-01-06 18:41:21 -05:00
Giga Bowser
aa36ac8867 internal: Migrate if let <=> match assists to SyntaxEditor 2025-01-06 15:58:39 -06:00