Rollup of 12 pull requests#158098
Conversation
* Handle generic reborrow in expression-use adjustment walking * Require generic reborrow to be terminal in adjustment walks
Co-authored-by: Alice Ryhl <aliceryhl@google.com>
Co-authored-by: Alice Ryhl <aliceryhl@google.com>
Co-authored-by: Kevin Reid <kpreid@switchb.org>
Co-authored-by: Kevin Reid <kpreid@switchb.org>
Co-authored-by: Alice Ryhl <aliceryhl@google.com>
Also replicated documentation on `TyCtxt::module_children`
Co-authored-by: Timo <30553356+y21@users.noreply.github.com>
`accept` can return an error that belongs to a single incoming connection, not to the listener itself, for example a connection aborted by the peer before it could be accepted. The listener stays usable in that case, so code serving a long-lived listener usually wants to log the error and keep accepting connections rather than treat it as fatal. This was previously undocumented. - Add an `# Errors` section to `accept` that describes this behavior without listing specific error codes. - Note that `Interrupted` errors are retried internally on Unix. - Point `incoming` and `into_incoming` at `accept` for the same details.
thin-vec versions before 0.2.16 have a use-after-free / double-free in `IntoIter::drop` and `ThinVec::clear` when an element's `Drop` panics (RUSTSEC-2026-0103). The requirement now sits past the affected range.
bincode is flagged as unmaintained by RUSTSEC-2025-0141, and the advisory covers the entire crate with no patched version available. The only use in this crate was the binary serde roundtrip in the type tests. postcard (https://crates.io/crates/postcard) is a maintained serde-based binary serialization format that covers the same roundtrip testing need. bincode is still pulled in transitively by the miri subtree (via ipc-channel), which needs to be addressed upstream.
LLVM uses GlobalISel with -O0 that doesn't support scalable vectors. It normally falls back to SDAG which does support scalable vectors, but there's a bug that means that isn't happening for debuginfo - so temporarily don't emit debuginfo for scalable vector locals when there are no optimisations until that bug is fixed. See <llvm/llvm-project#204585>.
…-visitor, r=dingxiangfei2009 Handle generic reborrow in expression-use adjustment walking Fixes an ICE in expression-use adjustment walking where `Adjust::GenericReborrow` could reach a match arm that assumed generic reborrow was unreachable. `GenericReborrow` is already emitted by typeck and classified as rvalue-producing elsewhere in `expr_use_visitor.rs`, so the adjustment walker must handle it explicitly instead of panicking. This PR models `GenericReborrow` as a borrow-like use of the source expression: - `Mutability::Mut` is treated like an exclusive/mutable reborrow use. - `Mutability::Not` is treated like a shared/coerce-shared borrow-like use. - The source is not moved or treated as a mere copy. cc @aapoalas @rustbot label F-reborrow Fixes rust-lang#156339 Tracking: rust-lang#145612
Enhance documentation on wake call memory ordering
Bump thin-vec to 0.2.18 to address RUSTSEC-2026-0103 thin-vec versions before 0.2.16 have a use-after-free / double-free in `IntoIter::drop` and `ThinVec::clear` when an element's `Drop` panics ([RUSTSEC-2026-0103](https://rustsec.org/advisories/RUSTSEC-2026-0103)). This bumps the requirement in the compiler crates from `0.2.15` to `0.2.18` and updates `Cargo.lock` accordingly, moving past the affected range.
…rrors, r=Darksonn Document transient connection errors from TcpListener::accept `TcpListener::accept` can return an error that belongs to a single incoming connection, not to the listener, for example a connection aborted by the peer before it could be accepted (`ConnectionAborted`). The listener stays usable, so a server looping over connections usually wants to log the error and keep accepting rather than treat it as fatal. This was not documented, and the `incoming` example treated every error as a failed connection. This implements the libs-team decision in rust-lang#142557: document these transient errors instead of changing `accept` to retry them, since retrying would hide errors that some callers want to observe. Changes: - Add an `# Errors` section to `accept` describing this behavior, without listing specific error codes since some may be more permanent than others. - Note that `Interrupted` errors are retried internally on Unix. - Add the same pointer to `incoming` and `into_incoming`, which are `accept` in a loop. Addresses rust-lang#142557. r? rust-lang/libs
…llaumeGomez rustdoc-json-types: Replace bincode dev-dependency with postcard bincode is flagged as unmaintained by [RUSTSEC-2025-0141](https://rustsec.org/advisories/RUSTSEC-2025-0141), and the advisory covers the entire crate with no patched version available. The only use in `rustdoc-json-types` was the binary serde roundtrip in the type tests. [postcard](https://crates.io/crates/postcard) is a maintained serde-based binary serialization format that covers the same roundtrip testing need. bincode is still pulled in transitively by the miri subtree (via `ipc-channel`), which needs to be [addressed upstream](rust-lang/miri#5115). ### Related - rust-lang/miri#5115
renovate: Loosen dashboard approval and adopt recommended config Follow-up tweaks to the Renovate config now that the GitHub Actions setup has proven stable. - GitHub Actions updates no longer need Dependency Dashboard approval. The gate was added while we dialed in the config, and the `github-actions` manager now works well enough for those PRs to open on their own. Everything else still requires approval. - Monthly lock file maintenance is now enabled. It stays behind dashboard approval for the time being. - The config extends [`config:recommended`](https://docs.renovatebot.com/presets-config/#configrecommended), which brings changelog links, sensible grouping, `replacements` and `workarounds`. That makes the previously explicit `dependencyDashboard: true` redundant, so it's gone. - Config migration PRs are enabled so Renovate can keep the config up to date as options get deprecated.
…o-no-opt, r=lqd codegen_ssa: no dbginfo for scalable vec local w/ `-O0` LLVM uses GlobalISel with `-O0` that doesn't support scalable vectors. It normally falls back to SDAG which does support scalable vectors, but there's a bug that means that isn't happening for debuginfo - so temporarily don't emit debuginfo for scalable vector locals when there are no optimisations until that bug is fixed. cc llvm/llvm-project#204585 cc rust-lang/stdarch#2160 r? @lqd
… r=Urgau Fix invalid "jump-to-def" doc link generation when an item has a `derive` proc-macro Fixes rust-lang#158050. The problem is that the proc-macros might generate an impl block `impl $(trait)? for Item` where `Item` then has its span pointing to the current item, overwriting its intra-doc link (hopefully this explanation makes sense ^^'). In short, the proc-macro generates an impl block, the `for Item` makes the code enter `visit_qpath` which in turn calls `handle_path` which will take the span of the last segment of the path (so `Item` here) and use it in the link def "span map". r? @Urgau
|
@bors r+ p=5 rollup=never |
This comment has been minimized.
This comment has been minimized.
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing c55fad5 (parent) -> bc2112e (this PR) Test differencesShow 91 test diffsStage 1
Stage 2
Additionally, 76 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard bc2112ed56c99fa649e09ab3ab286afab3d9059a --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
📌 Perf builds for each rolled up PR:
previous master: c55fad5a90 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
Finished benchmarking commit (bc2112e): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -4.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -2.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 0.0%, secondary 0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 481.592s -> 482.188s (0.12%) |
Successful merges:
proc_macro::ConversionErrorKindnon exhaustive #157935 (Makeproc_macro::ConversionErrorKindnon exhaustive)unwrapwithexpectinget_module_children#158002 (Replaceunwrapwithexpectinget_module_children)impl const Traitsince the right syntax isconst impl Traitnow #158009 (Rejectimpl const Traitsince the right syntax isconst impl Traitnow)-O0#158088 (codegen_ssa: no dbginfo for scalable vec local w/-O0)deriveproc-macro #158089 (Fix invalid "jump-to-def" doc link generation when an item has aderiveproc-macro)r? @ghost
Create a similar rollup