Commit graph

32266 commits

Author SHA1 Message Date
Laurențiu Nicola
06fbbd5440
Merge pull request #18606 from ChayimFriedman2/improve-soundness-just-a-bit
minor: Improve soundness a bit by making `TaggedArcPtr::try_as_arc_owned()` unsafe
2024-12-04 03:44:01 +00:00
Chayim Refael Friedman
3aeb5e66c4 Improve soundness a bit by making TaggedArcPtr::try_as_arc_owned() unsafe
Since the `ManuallyDrop` it returns can be safely used to consume the `Arc`, which is can cause UB if done incorrectly. See #18499.
2024-12-04 03:38:37 +02:00
Lukas Wirth
e6276c8b64
Merge pull request #18555 from ChayimFriedman2/issue-17321
fix: Fix a bug when synthetic AST node were searched in the AST ID map and caused panics
2024-12-03 15:39:52 +00:00
Lukas Wirth
a74c90b5d3
Merge pull request #18592 from darichey/status-bar-visibility
vscode: Only show status bar item in relevant files
2024-12-03 14:53:35 +00:00
David Richey
cf80dddb59 Only show status bar item in relevant files 2024-12-03 14:40:26 +00:00
Lukas Wirth
c4e040ea8d
Merge pull request #18589 from SomeoneToIgnore/proper-resolve-advertisement
Advertise completions and inlay hints resolve server capabilities based on the client capabilities
2024-12-03 09:24:14 +00:00
Kirill Bulatov
4261ac7856 Advertise completions and inlay hints resolve server capabilities based on the client capabilities. 2024-12-03 10:51:17 +02:00
Lukas Wirth
aa38be893c
Merge pull request #18561 from markmurphydev/macro_name_raw_variable
Add macro expansion test for raw variable names
2024-12-02 16:23:07 +00:00
Lukas Wirth
8762a4f9be
Merge pull request #18587 from Veykril/push-urrlrursyrws
fix: Fix syntax fixup inserting unnecessary semicolons
2024-12-02 12:50:28 +00:00
Lukas Wirth
e7b96dd2de fix: Fix syntax fixup inserting unnecessary semicolons 2024-12-02 13:35:58 +01:00
Lukas Wirth
d8c162beb1
Merge pull request #18586 from Veykril/push-kolxkxyntxtt
fix: Fix debug configuration querying not inheriting environment
2024-12-02 12:16:33 +00:00
Lukas Wirth
d75f996722 Fix debug configuration querying not inheriting environment 2024-12-02 13:02:31 +01:00
Laurențiu Nicola
b65911d5ee
Merge pull request #18577 from compiler-errors/redundant-dyn-atb
Remove redundant associated type bounds from `dyn TypeFolder`
2024-11-30 03:55:01 +00:00
Michael Goulet
29d59c58d8 Remove redundant associated type bounds from dyn 2024-11-30 03:33:33 +00:00
Laurențiu Nicola
ab448661df
Merge pull request #18567 from lnicola/sync-from-rust
minor: fix proc macro test
2024-11-28 19:29:11 +00:00
Laurențiu Nicola
1017216452 Merge from rust-lang/rust 2024-11-28 16:01:45 +02:00
Laurențiu Nicola
662ff031a3 Preparing for merge from rust-lang/rust 2024-11-28 16:01:40 +02:00
bors
452a3bacc4 Auto merge of #133568 - GuillaumeGomez:rollup-js22ovb, r=GuillaumeGomez
Rollup of 7 pull requests

Successful merges:

 - #133358 (Don't type error if we fail to coerce `Pin<T>` because it doesnt contain a ref)
 - #133422 (Fix clobber_abi in RV32E and RV64E inline assembly)
 - #133452 (Support predicate registers (clobber-only) in Hexagon inline assembly)
 - #133463 (Fix handling of x18 in AArch64 inline assembly on ohos/trusty or with -Zfixed-x18)
 - #133487 (fix confusing diagnostic for reserved `##`)
 - #133557 (Small doc fixes in `rustc_codegen_ssa`)
 - #133560 (Trim extra space in 'repeated `mut`' diagnostic)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-11-28 11:20:29 +00:00
bors
8a5d4a3616 Auto merge of #133564 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? `@ghost`
2024-11-28 08:24:44 +00:00
Laurențiu Nicola
6db5e962ca Fix proc macro test 2024-11-28 09:40:14 +02:00
Laurențiu Nicola
1d0e0cb833
Merge pull request #18566 from lnicola/sync-from-rust
minor: Sync from downstream
2024-11-28 06:54:16 +00:00
Laurențiu Nicola
d9df44fdc1 Bump rustc crates 2024-11-28 08:39:56 +02:00
Laurențiu Nicola
6f8286dcbc Merge from rust-lang/rust 2024-11-28 08:37:36 +02:00
Laurențiu Nicola
555c6f6734 Preparing for merge from rust-lang/rust 2024-11-28 08:37:22 +02:00
bors
7e5d40ab98 Auto merge of #133274 - ehuss:macro_rules-edition-from-pm, r=compiler-errors
Use edition of `macro_rules` when compiling the macro

This changes the edition assigned to a macro_rules macro when it is compiled to use the edition of where the macro came from instead of the local crate's edition.

This fixes a problem when a macro_rules macro is created by a proc-macro. Previously that macro would be tagged with the local edition, which would cause problems with using the correct edition behavior inside the macro. For example, the check for unsafe attributes would cause errors in 2024 when using proc-macros from older editions.

This is partially related to https://github.com/rust-lang/rust/issues/132906. Unfortunately this is only a half fix for that issue. It fixes the error that happens in 2024, but does not fix the lint firing in 2021. I'm still trying to think of some way to fix that, but I'm running low on ideas.
2024-11-27 04:54:08 +00:00
Laurențiu Nicola
8d5e91c94f
Merge pull request #18511 from darichey/sysroot-query-metadata
Re-add `rust-analyzer.cargo.sysrootQueryMetadata`
2024-11-26 15:11:44 +00:00
Mark Murphy
a53ee64e70 Add macro expansion test for raw variable names 2024-11-26 00:42:27 -05:00
Laurențiu Nicola
157c7d0114
Merge pull request #18559 from ChayimFriedman2/recur-unsized
fix: Fix a stack overflow when computing the sizedness of a struct that includes itself as the tail field
2024-11-25 19:24:00 +00:00
Chayim Refael Friedman
0d43932235 Fix a stack overflow when computing the sizedness of a struct that includes itself as the tail field 2024-11-25 20:49:35 +02:00
Chayim Refael Friedman
b66bc91b4b Fix a bug when synthetic AST node were searched in the AST ID map and caused panics 2024-11-25 14:52:58 +02:00
bors
3d802a9428 Auto merge of #133247 - GuillaumeGomez:reduce-integer-display-impl, r=workingjubilee
Reduce integer `Display` implementation size

I was thinking about #128204 and how we could reduce the size of the code and just realized that we didn't need the `_fmt` method to be implemented on signed integers, which in turns allow to simplify greatly the macro call.

r? `@workingjubilee`
2024-11-25 11:03:41 +00:00
Laurențiu Nicola
327ab2958f
Merge pull request #18552 from lnicola/rust-src-message
internal: Fix missing `rust-src` message
2024-11-24 16:42:18 +00:00
Laurențiu Nicola
8fc5f3deb5 Fix missing rust-src message 2024-11-24 18:27:40 +02:00
bors
653c245391 Auto merge of #132791 - tyilo:big-file-fail-fast, r=compiler-errors
rustc: Fail fast when compiling a source file larger than 4 GiB

Currently if you try to compile a file that is larger than 4 GiB, `rustc` will first read the whole into memory before failing.

If we can read the metadata of the file, we can fail before reading the file.
2024-11-24 07:37:32 +00:00
bors
923302d042 Auto merge of #132611 - compiler-errors:async-prelude, r=ibraheemdev
Add `AsyncFn*` to the prelude in all editions

The general vibe is that we will most likely stabilize the `feature(async_closure)` *without* the `async Fn()` trait bound modifier.

Without `async Fn()` bound syntax, this necessitates users to spell the bound like `AsyncFn()`. Since `core::ops::AsyncFn` is not in the prelude, users will need to import these any time they actually want to use the trait. This seems annoying, so let's add these traits to the prelude unstably.

We're trying to work on the general vision of `async` trait bound modifier in general in: https://github.com/rust-lang/rfcs/pull/3710, however that RFC still needs more time for consensus to converge, and we've decided that the value that users get from calling the bound `async Fn()` is *not really* worth blocking landing async closures in general.
2024-11-24 04:53:16 +00:00
bors
2926313af2 Auto merge of #132597 - lukas-code:btree-plug-leak, r=jhpratt
btree: don't leak value if destructor of key panics

This PR fixes a regression from https://github.com/rust-lang/rust/pull/84904.

The `BTreeMap` already attempts to handle panicking destructors of the key-value pairs by continuing to execute the remaining destructors after one destructor panicked. However, after #84904 the destructor of a value in a key-value pair gets skipped if the destructor of the key panics, only continuing with the next key-value pair. This PR reverts to the behavior before #84904 to also drop the corresponding value if the destructor of a key panics.

This avoids potential memory leaks and can fix the soundness of programs that rely on the destructors being executed (even though this should not be relied upon, because the std collections currently do not guarantee that the remaining elements are dropped after a panic in a destructor).

cc `@Amanieu` because you had opinions on panicking destructors
2024-11-24 02:08:58 +00:00
Laurențiu Nicola
a2bb014914
Merge pull request #18548 from markmurphydev/master
Update file path for request.rs entry point in architecture.md
2024-11-23 19:04:09 +00:00
Mark Murphy
9f73787b98
Update request entry point file path in architecture.md 2024-11-23 13:46:40 -05:00
bors
8a40fd0b62 Auto merge of #132994 - clubby789:cc-bisect, r=Kobzol
Update `cc` + bump bootstrap deps

https://github.com/rust-lang/rust/pull/132556#issuecomment-2471741435

note: The compiler/library/tools cc bumps have been tested with a try job, the bootstrap changes have not
2024-11-23 12:15:39 +00:00
bors
93fec1a83d Auto merge of #130867 - michirakara:steps_between, r=dtolnay
distinguish overflow and unimplemented in Step::steps_between
2024-11-22 10:54:22 +00:00
bors
154be9a4a7 Auto merge of #129238 - umgefahren:stabilize-ipv6-unique-local, r=dtolnay
Stabilize `Ipv6Addr::is_unique_local` and `Ipv6Addr::is_unicast_link_local`

Make `Ipv6Addr::is_unique_local` and `Ipv6Addr::is_unicast_link_local` stable (+const).

Newly stable API:

```rust
impl Ipv6Addr {
	// Newly stable under `ipv6_is_unique_local`
	const fn is_unique_local(&self) -> bool;

	// Newly stable under `ipv6_is_unique_local`
	const fn is_unicast_link_local(&self) -> bool;
}
```

These stabilise a subset of the following tracking issue:
- #27709

I have looked and could not find any issues with `is_unique_local` and `is_unicast_link_local`. There is a well received comment calling for stabilisation of the latter function.

Both functions are well defined and consistent with implementations in other languages:
- [Go](https://cs.opensource.google/go/go/+/refs/tags/go1.23.0:src/net/netip/netip.go;l=518)
- [Python](e9d1bf353c/Lib/ipaddress.py (L2319-L2321))
- [Ruby (unique local)](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html#private-3F-source)
- [Ruby (unicast link local)](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html#link_local-3F-source)

cc implementor `@little-dude`
(I can't find the original PR for `is_unqiue_local`)

r? libs-api
`@rustbot` label +T-libs-api +needs-fcp
2024-11-22 06:38:39 +00:00
bors
9567bd67a9 Auto merge of #133227 - weihanglo:update-cargo, r=weihanglo
Update cargo

5 commits in 69e595908e2c420e7f0d1be34e6c5b984c8cfb84..66221abdeca2002d318fde6efff516aab091df0e
2024-11-16 01:26:11 +0000 to 2024-11-19 21:30:02 +0000
- Docs for optional registry JSON fields (rust-lang/cargo#14839)
- Allow registries to omit empty/default fields in JSON (rust-lang/cargo#14838)
- docs(unstable): Link to -Zwarnings issue, tracking issue (rust-lang/cargo#14836)
- fix(): error context for git_fetch refspec not found (rust-lang/cargo#14806)
- you we distinction (rust-lang/cargo#14829)
2024-11-20 12:32:55 +00:00
bors
cd0d0a37ef Auto merge of #133212 - lcnr:questionable-uwu, r=compiler-errors
continue `ParamEnv` to `TypingEnv` transition

cc #132279

r? `@compiler-errors`
2024-11-20 06:22:01 +00:00
bors
4c2588f5bd Auto merge of #133194 - khuey:master, r=jieyouxu
Drop debug info instead of panicking if we exceed LLVM's capability to represent it

Recapping a bit of history here:

In #128861 I made debug info correctly represent parameters to inline functions by removing a fake lexical block that had been inserted to suppress LLVM assertions and by deduplicating those parameters.

LLVM, however, expects to see a single parameter _with distinct locations_, particularly distinct inlinedAt values on the DILocations. This generally worked because no matter how deep the chain of inlines it takes two different call sites in the original function to result in the same function being present multiple times, and a function call requires a non-zero number of characters, but macros threw a wrench in that in #131944. At the time I thought the issue there was limited to proc-macros, where an arbitrary amount of code can be generated at a single point in the source text.

In #132613 I added discriminators to DILocations that would otherwise be the same to repair #131944[^1]. This works, but LLVM's capacity for discriminators is not infinite (LLVM actually only allocates 12 bits for this internally). At the time I thought it would be very rare for anyone to hit the limit, but #132900 proved me wrong. In the relatively-minimized test case it also became clear to me that the issue affects regular macros too, because the call to the inlined function will (without collapse_debuginfo on the macro) be attributed to the (repeated, if the macro is used more than once) textual callsite in the macro definition.

This PR fixes the panic by dropping debug info when we exceed LLVM's maximum discriminator value. There's also a preceding commit for a related but distinct issue: macros that use collapse_debuginfo should in fact have their inlinedAts collapsed to the macro callsite and thus not need discriminators at all (and not panic/warn accordingly when the discriminator limit is exhausted).

Fixes #132900

r? `@jieyouxu`

[^1]: Editor's note: `fix` is a magic keyword in PR description that apparently will close the linked issue (it's closed already in this case, but still).
2024-11-20 02:10:50 +00:00
bors
a3833be151 Auto merge of #133219 - matthiaskrgr:rollup-hnuq0zf, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #123947 (Add vec_deque::Iter::as_slices and friends)
 - #125405 (Add std:🧵:add_spawn_hook.)
 - #133175 (ci: use free runner in dist-i686-msvc)
 - #133183 (Mention std::fs::remove_dir_all in std::fs::remove_dir)
 - #133188 (Add `visit` methods to ast nodes that already have `walk`s on ast visitors)
 - #133201 (Remove `TokenKind::InvalidPrefix`)
 - #133207 (Default-enable `llvm_tools_enabled` when no `config.toml` is present)
 - #133213 (Correct the tier listing of `wasm32-wasip2`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-11-19 23:04:44 +00:00
Matthias Krüger
8cb32b57bd
Rollup merge of #133213 - alexcrichton:fix-tier-listing, r=jieyouxu
Correct the tier listing of `wasm32-wasip2`

This target is tier 2, not tier 3, and I forgot to update this.

Closes #133206
2024-11-19 22:24:48 +01:00
Matthias Krüger
91588ddd3b
Rollup merge of #133207 - jieyouxu:macos-objcopy, r=Kobzol,bjorn3
Default-enable `llvm_tools_enabled` when no `config.toml` is present

Fixes #133195. cc `@wesleywiser` could you double check if with this patch and no `config.toml` that you can run `./x test tests/ui --stage 1`?

`llvm-objcopy` is usually required by cg_ssa on macOS to workaround bad `strip`s.

cc `@bjorn3` I hope this doesn't break cg_clif...

r? bootstrap
2024-11-19 22:24:47 +01:00
Matthias Krüger
ede59971d1
Rollup merge of #133201 - nnethercote:rm-TokenKind-InvalidPrefix, r=compiler-errors
Remove `TokenKind::InvalidPrefix`

It's not needed. Best reviewed one commit at a time.

r? `@estebank`
2024-11-19 22:24:47 +01:00
Matthias Krüger
2284d1e39d
Rollup merge of #133188 - maxcabrajac:walk_no_visit, r=petrochenkov
Add `visit` methods to ast nodes that already have `walk`s on ast visitors

Some `walk` functions are called directly, because there were no correspondent visit functions.

related to #128974 & #127615

r? `@petrochenkov`
2024-11-19 22:24:46 +01:00
Matthias Krüger
46c033f0c2
Rollup merge of #133175 - MarcoIeni:dist-i686-msvc-free, r=Kobzol
ci: use free runner in dist-i686-msvc

try-job: dist-i686-msvc
2024-11-19 22:24:45 +01:00