Commit graph

298901 commits

Author SHA1 Message Date
Frank King
afdb54a673 Move the place in &pin mut $place when !Unpin to ensure soundness 2025-06-15 10:31:11 +08:00
bors
32b51523f8 Auto merge of #142355 - lcnr:fast_reject-reject, r=BoxyUwU
move fast reject into inner

to also fast reject inside of the folder

r? `@BoxyUwU`
2025-06-15 02:25:15 +00:00
Frank King
2090f40770 Move tests/ui/async-await/pin-ergonomics to tests/ui 2025-06-15 10:21:29 +08:00
Frank King
e627f88f88 Implement pinned borrows, part of pin_ergonomics 2025-06-15 10:21:29 +08:00
Chayim Refael Friedman
ac79d3f487
Merge pull request #19996 from LHolten/exclude-imports
Add support for excluding imports from symbol search
2025-06-15 00:52:44 +00:00
Lucas Holten
6cf1a89dc5 Add config option to exclude imports from symbol search 2025-06-15 02:41:35 +02:00
github-actions
870e5a26ee cargo update
compiler & tools dependencies:
     Locking 31 packages to latest compatible versions
    Updating adler2 v2.0.0 -> v2.0.1
    Updating cfg-if v1.0.0 -> v1.0.1
    Updating clap v4.5.39 -> v4.5.40
    Updating clap_builder v4.5.39 -> v4.5.40
    Updating clap_derive v4.5.32 -> v4.5.40
    Updating clap_lex v0.7.4 -> v0.7.5
    Updating getopts v0.2.21 -> v0.2.23
    Updating hermit-abi v0.5.1 -> v0.5.2
    Updating jiff v0.2.14 -> v0.2.15
    Updating jiff-static v0.2.14 -> v0.2.15
    Updating libc v0.2.172 -> v0.2.173
    Updating memchr v2.7.4 -> v2.7.5
    Updating minifier v0.3.5 -> v0.3.6
    Updating miniz_oxide v0.8.8 -> v0.8.9
    Updating object v0.37.0 -> v0.37.1
    Updating redox_syscall v0.5.12 -> v0.5.13
    Updating rustc-demangle v0.1.24 -> v0.1.25
    Updating syn v2.0.101 -> v2.0.103
    Updating thread_local v1.1.8 -> v1.1.9
    Updating unicode-width v0.2.0 -> v0.2.1
    Updating wasi v0.11.0+wasi-snapshot-preview1 -> v0.11.1+wasi-snapshot-preview1
    Updating wasm-encoder v0.233.0 -> v0.235.0
    Removing wasmparser v0.232.0
    Removing wasmparser v0.233.0
      Adding wasmparser v0.234.0
      Adding wasmparser v0.235.0
    Updating wast v233.0.0 -> v235.0.0
    Updating wat v1.233.0 -> v1.235.0
    Updating windows v0.61.1 -> v0.61.3
    Updating windows-link v0.1.1 -> v0.1.3
      Adding windows-sys v0.60.2
    Updating windows-targets v0.53.0 -> v0.53.2
    Updating winnow v0.7.10 -> v0.7.11
note: pass `--verbose` to see 39 unchanged dependencies behind latest

library dependencies:
     Locking 1 package to latest compatible version
    Updating libc v0.2.172 -> v0.2.173
note: pass `--verbose` to see 4 unchanged dependencies behind latest

rustbook dependencies:
     Locking 19 packages to latest compatible versions
    Updating adler2 v2.0.0 -> v2.0.1
    Updating cc v1.2.26 -> v1.2.27
    Updating cfg-if v1.0.0 -> v1.0.1
    Updating clap v4.5.39 -> v4.5.40
    Updating clap_builder v4.5.39 -> v4.5.40
    Updating clap_complete v4.5.52 -> v4.5.54
    Updating clap_derive v4.5.32 -> v4.5.40
    Updating clap_lex v0.7.4 -> v0.7.5
    Updating getopts v0.2.21 -> v0.2.23
    Updating jiff v0.2.14 -> v0.2.15
    Updating jiff-static v0.2.14 -> v0.2.15
    Updating libc v0.2.172 -> v0.2.173
    Updating memchr v2.7.4 -> v2.7.5
    Updating miniz_oxide v0.8.8 -> v0.8.9
    Updating redox_syscall v0.5.12 -> v0.5.13
    Updating syn v2.0.101 -> v2.0.103
    Removing unicode-width v0.1.14
    Removing unicode-width v0.2.0
      Adding unicode-width v0.2.1
    Updating windows-link v0.1.1 -> v0.1.3
    Updating winnow v0.7.10 -> v0.7.11
2025-06-15 00:26:43 +00:00
bors
38c41d0f92 Auto merge of #142335 - nnethercote:rustdoc-json-allocations, r=aDotInTheVoid
rustdoc_json: reduce allocations

These commits reduce the number of allocations done for rustdoc_json, mostly by avoiding unnecessary clones.

Best reviewed one commit at a time.

r? `@aDotInTheVoid`
2025-06-14 23:21:16 +00:00
sayantn
2ffa1dd392
Implement simd_round_ties_even for miri, cg_clif and cg_gcc 2025-06-15 04:33:56 +05:30
sayantn
2038405ff7
Add simd_funnel_sh{l,r} and simd_round_ties_even 2025-06-15 04:33:41 +05:30
antoyo
82d7cd4dbc
Merge pull request #709 from rust-lang/reenable-run-make-tests
Reenable run-make tests
2025-06-14 18:10:49 -04:00
Tshepang Mbambo
d16e1a1452
Merge pull request #2468 from rust-lang/query-cleaning
Query cleaning
2025-06-14 23:52:29 +02:00
Antoni Boucher
735a6d3a50 Switch to gcc-14 by default to fix some run-make tests 2025-06-14 17:44:47 -04:00
Tshepang Mbambo
21a1e51704 do not inline links 2025-06-14 22:56:10 +02:00
Tshepang Mbambo
820e88a7c6 title case 2025-06-14 22:49:46 +02:00
Tshepang Mbambo
a3f261c976
Merge pull request #2467 from rust-lang/tshepang-patch-1
use sentence case
2025-06-14 22:46:18 +02:00
Tshepang Mbambo
0834e48a11
use sentence case 2025-06-14 22:44:47 +02:00
Tshepang Mbambo
9926215ef2
Merge pull request #2466 from rust-lang/tshepang-moved
content has moved to another chapter
2025-06-14 22:17:51 +02:00
Tshepang Mbambo
a70deb6e75 content has moved to another chapter 2025-06-14 22:16:51 +02:00
bors
49a8ba0684 Auto merge of #142289 - fmease:maybe-perf-gen-args, r=compiler-errors
[perf] `GenericArgs`-related: Change asserts to debug asserts & use more slice interning over iterable interning

1. The 1st commit yields the following perf gains: [#142289 (comment)](https://github.com/rust-lang/rust/pull/142289#issuecomment-2964041303).
2. The 2nd commit might also have a minor positive perf impact, however that one wasn't tested in isolation.

For reference, the initial approach c7e6accd79 (results: https://github.com/rust-lang/rust/pull/142289#issuecomment-2961076587) had a lot more changes (apart from what's now contained in commit 1 and 2) which seemed to be perf irrelevant (cf. the partial countercheck in 6f82bf1cfe (results: https://github.com/rust-lang/rust/pull/142289#issuecomment-2968393647).
2025-06-14 19:42:04 +00:00
Tshepang Mbambo
9265493052
Merge pull request #2465 from xizheyin/rustc-query
Adjust some doc for Query System
2025-06-14 21:39:25 +02:00
michal kostrubiec
ed441b64ed Added support for testing the backend with abi-cafe 2025-06-14 20:58:07 +02:00
dswij
97815d0cda
docs: make unbuffered_bytes docs more consistent (#15019)
changelog: None
2025-06-14 18:05:34 +00:00
Tshepang Mbambo
94d56d18fd
Merge pull request #2441 from rust-lang/tshepang-remove-title-case
use consistent title capitalization
2025-06-14 19:52:41 +02:00
dswij
49d0f86a73
Remove unneeded lifetime (#15040)
changelog: none
2025-06-14 17:40:22 +00:00
bors
5b660c5357 Auto merge of #142259 - sayantn:simplify-intrinsics, r=workingjubilee
Simplify implementation of Rust intrinsics by using type parameters in the cache

The current implementation of intrinsics have a lot of duplication to handle different overloads of overloaded LLVM intrinsic. This PR uses the **base name and the type parameters** in the cache instead of the full, overloaded name. This has the benefit that `call_intrinsic` doesn't need to provide the full name, rather the type parameters (which is most of the time more available). This uses `LLVMIntrinsicCopyOverloadedName2` to get the overloaded name from the base name and the type parameters, and only uses it to declare the function.

(originally was part of rust-lang/rust#140763, split off later)

`@rustbot` label A-codegen A-LLVM
r? codegen
2025-06-14 16:43:34 +00:00
bors
cc87afd8c0 Auto merge of #142259 - sayantn:simplify-intrinsics, r=workingjubilee
Simplify implementation of Rust intrinsics by using type parameters in the cache

The current implementation of intrinsics have a lot of duplication to handle different overloads of overloaded LLVM intrinsic. This PR uses the **base name and the type parameters** in the cache instead of the full, overloaded name. This has the benefit that `call_intrinsic` doesn't need to provide the full name, rather the type parameters (which is most of the time more available). This uses `LLVMIntrinsicCopyOverloadedName2` to get the overloaded name from the base name and the type parameters, and only uses it to declare the function.

(originally was part of rust-lang/rust#140763, split off later)

`@rustbot` label A-codegen A-LLVM
r? codegen
2025-06-14 16:43:34 +00:00
dswij
086a7c9780
Fix needless_doctest_main panic when doctest is invalid (#15052)
Closes rust-lang/rust-clippy#8244
Closes rust-lang/rust-clippy#15041

This feels like a bug with the compiler, because the panic happens when
`Diag` is getting unwinded. However, `drop()` is already called in
`.cancel()` so this should not happen.

In this PR, I find a workaround to just call `emit()`, since the
`DiagCtxt` here is just a `io::sink`, nothing will happen and the panic
just goes away.

changelog: [`needless_doctest_main`] fix panic when doctest is invalid
2025-06-14 15:58:39 +00:00
Antoni Boucher
5bd2c804b0 Fix for tests/run-make/no-builtins-attribute 2025-06-14 11:19:53 -04:00
Urgau
810d99e7b5 Prepare rustc-dev component un-remapping in the compiler 2025-06-14 15:24:28 +02:00
bit-aloo
c9eeeb4b5f
remove check_run function from helpers 2025-06-14 18:23:35 +05:30
Ralf Jung
3951b55111
Merge pull request #4399 from RalfJung/rustup
Rustup
2025-06-14 12:40:00 +00:00
bors
4a73e3c224 Auto merge of #142129 - shepmaster:mismatched-syntaxes-in-function-like-places, r=jieyouxu
Apply `mismatched-lifetime-syntaxes` to trait and extern functions

r? `@jieyouxu`
2025-06-14 12:37:35 +00:00
bit-aloo
b5db059b83
remove check_run method from config 2025-06-14 17:10:44 +05:30
bit-aloo
c67f7ae27f
replace all instances of check_run in download with execution context 2025-06-14 17:10:07 +05:30
bit-aloo
e11e640013
replace all instances of check_run in config with execution context 2025-06-14 17:09:25 +05:30
Guillaume Gomez
6ca4639d6a Fix random failure when JS code is executed when the whole file was not read yet 2025-06-14 11:58:47 +02:00
bjorn3
4d536bd1dc Remove outdated docs about broken ABI 2025-06-14 09:57:07 +00:00
bjorn3
3c96f6e5a7 Remove all support for wasm's legacy ABI 2025-06-14 09:57:06 +00:00
bjorn3
3e944fa391 Remove all support for wasm's legacy ABI 2025-06-14 09:57:06 +00:00
bjorn3
600a8a7f63 Rustup to rustc 1.89.0-nightly (8da623945 2025-06-13) 2025-06-14 09:42:41 +00:00
bjorn3
2f2a0b9fc8 Sync from rust 8da623945f 2025-06-14 09:37:32 +00:00
bors
9822e3dc15 Auto merge of #142492 - matthiaskrgr:rollup-a132ytq, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#140593 (Temporary lifetime extension through tuple struct and tuple variant constructors)
 - rust-lang/rust#141399 ([rustdoc] Give more information into extracted doctest information)
 - rust-lang/rust#141493 (Delegate `<SocketAddr as Debug>` to `ByteStr`)
 - rust-lang/rust#141811 (Unimplement unsized_locals)
 - rust-lang/rust#142243 (float tests: deduplicate min, max, and rounding tests)
 - rust-lang/rust#142464 (variadic functions: remove list of supported ABIs from error)
 - rust-lang/rust#142477 (Fix incorrect suggestion when calling an associated type with a type anchor)
 - rust-lang/rust#142484 (Remove unneeded lifetime bound from signature of BTreeSet::extract_if)
 - rust-lang/rust#142489 (Update the `compiler-builtins` subtree)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-14 09:33:12 +00:00
Matthias Krüger
fd1f479b05
Rollup merge of #142489 - tgross35:update-builtins, r=tgross35
Update the `compiler-builtins` subtree

Update the Josh subtree to 7c46e921c1.

r? `@ghost`
2025-06-14 11:27:13 +02:00
Matthias Krüger
22f91aefd5
Rollup merge of #142484 - dtolnay:bsetextract, r=m-ou-se
Remove unneeded lifetime bound from signature of BTreeSet::extract_if

One way to observe the difference between these signatures, using 0 explicit lifetimes and 0 contrived where-clauses:

```rust
use std::collections::btree_set::{BTreeSet, ExtractIf};
use std::ops::RangeFull;

fn repro(
    set: &mut BTreeSet<i32>,
    predicate: impl Fn(i32) -> bool,
) -> ExtractIf<i32, RangeFull, impl FnMut(&i32) -> bool> {
    set.extract_if(.., move |x| predicate(*x))
}
```

**Before:**

```console
error[E0311]: the parameter type `impl Fn(i32) -> bool` may not live long enough
 --> src/lib.rs:8:5
  |
5 |     set: &mut BTreeSet<i32>,
  |          ------------------ the parameter type `impl Fn(i32) -> bool` must be valid for the anonymous lifetime defined here...
...
8 |     set.extract_if(.., move |x| predicate(*x))
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `impl Fn(i32) -> bool` will meet its required lifetime bounds
  |
help: consider adding an explicit lifetime bound
  |
4 ~ fn repro<'a>(
5 ~     set: &'a mut BTreeSet<i32>,
6 ~     predicate: impl Fn(i32) -> bool + 'a,
7 ~ ) -> ExtractIf<'a, i32, RangeFull, impl FnMut(&i32) -> bool> {
  |
```

**After:** compiles success.

- Tracking issue: https://github.com/rust-lang/rust/issues/70530
2025-06-14 11:27:12 +02:00
Matthias Krüger
4bf7765388
Rollup merge of #142477 - JonathanBrouwer:associated-type-suggestion, r=WaffleLapkin
Fix incorrect suggestion when calling an associated type with a type anchor

`sugg_span` here is the span of the call expression.
That span here is the `<Self>::Assoc`, which is exactly what we need here (even though I would expect it to include the arguments, but I guess it doesn't)

r? ``@WaffleLapkin``
One commit with failing tests and one that fixes it for reviewability

closes rust-lang/rust#142473
2025-06-14 11:27:12 +02:00
Matthias Krüger
fe54c3a5eb
Rollup merge of #142464 - RalfJung:variadic-fn-abi-error, r=workingjubilee
variadic functions: remove list of supported ABIs from error

I think this list is problematic for multiple reasons:
- It is bound to go out-of-date as it is in a very different place from where we actually define which functions support varagrs (`fn supports_varargs`).
- Many of the ABIs we list only work on some targets; it makes no sense to mention "aapcs" as a possible ABI when building for x86_64. (This led to a lot of confusion in https://github.com/rust-lang/rust/issues/110505 where the author thought they should use "cdecl" and then were promptly told that "cdecl" is not a legal ABI on their target.)
- Typically, when the programmer wrote `extern "foobar"`, it is because they need the "foobar" ABI. It is of little use to tell them that there are other ABIs with which varargs would work.

Cc ``@workingjubilee``
2025-06-14 11:27:11 +02:00
Matthias Krüger
4cf4473b85
Rollup merge of #142243 - RalfJung:float-test-dedup, r=tgross35
float tests: deduplicate min, max, and rounding tests

Part of https://github.com/rust-lang/rust/issues/141726

Best reviewed commit-by-commit.

- Use `assert_biteq!` in the `mod.rs` tests. This requires some trickery to make shadowing macros with imports work.
- The min, max, minimum, maximum tests in `tests/floats/f*.rs` are entirely subsumed by what we already have in `tests/float/mod.rs`, so I just removed them.
- The rounding tests (floor etc) in `f*.rs` had more test points, so I copied them over. They didn't have `0.5` and `-0.5` though which seem like interesting points in particular regarding the sign of the resulting zero if that's what it sounds to, and they didn't max min/max/inf/nan tests, so this was really a merger of both tests.

r? ``@tgross35``
2025-06-14 11:27:11 +02:00
Matthias Krüger
8b24077171 Rollup merge of #141811 - mejrs:bye_locals, r=compiler-errors
Unimplement unsized_locals

Implements https://github.com/rust-lang/compiler-team/issues/630

Tracking issue here: https://github.com/rust-lang/rust/issues/111942

Note that this just removes the feature, not the implementation, and does not touch `unsized_fn_params`. This is because it is required to support `Box<dyn FnOnce()>: FnOnce()`.

There may be more that should be removed (possibly in follow up prs)
- the `forget_unsized` function and `forget` intrinsic.
- the `unsized_locals` test directory; I've just fixed up the tests for now
- various codegen support for unsized values and allocas

cc ``@JakobDegen`` ``@oli-obk`` ``@Noratrieb`` ``@programmerjake`` ``@bjorn3``

``@rustbot`` label F-unsized_locals

Fixes rust-lang/rust#79409
2025-06-14 11:27:10 +02:00
Matthias Krüger
252a6dd40b Rollup merge of #141811 - mejrs:bye_locals, r=compiler-errors
Unimplement unsized_locals

Implements https://github.com/rust-lang/compiler-team/issues/630

Tracking issue here: https://github.com/rust-lang/rust/issues/111942

Note that this just removes the feature, not the implementation, and does not touch `unsized_fn_params`. This is because it is required to support `Box<dyn FnOnce()>: FnOnce()`.

There may be more that should be removed (possibly in follow up prs)
- the `forget_unsized` function and `forget` intrinsic.
- the `unsized_locals` test directory; I've just fixed up the tests for now
- various codegen support for unsized values and allocas

cc ``@JakobDegen`` ``@oli-obk`` ``@Noratrieb`` ``@programmerjake`` ``@bjorn3``

``@rustbot`` label F-unsized_locals

Fixes rust-lang/rust#79409
2025-06-14 11:27:10 +02:00