Repository navigation
Rollup of 8 pull requests - #164613
Rollup of 8 pull requests#164613
Conversation
connect_timeout also now reject Duration::ZERO
This commit adds a new tier 3 target to the compiler named `wasm32-none-component`. This was previously approved some time ago in rust-lang/compiler-team/948. The main purpose of this target is to provide some means of producing a WebAssembly component which does not, by default, import any APIs at all. Users get to have fine-grained control over what exactly is imported and what exactly is exported. There's no immediate plan at this time to seek out tier 2, so for now this is intended to just be a target that rustc knows about that's useful for experimenting with but otherwise shouldn't cause too much overhead otherwise.
…d variables * typeck: avoid ICE with non-lifetime closure binders * test: add non-lifetime closure binder regression tests and FIXMEs
…risDenton windows: stabilise inherit_handles Relevant to rust-lang#161158; closes rust-lang#146407 (by stabilising it). See my comment on the tracking issue. r? libs
… r=chenyukang Add a `wasm32-none-component` target definition This commit adds a new tier 3 target to the compiler named `wasm32-none-component`. This was previously approved some time ago in rust-lang/compiler-team#948. The main purpose of this target is to provide some means of producing a WebAssembly component which does not, by default, import any APIs at all. Users get to have fine-grained control over what exactly is imported and what exactly is exported. There's no immediate plan at this time to seek out tier 2, so for now this is intended to just be a target that rustc knows about that's useful for experimenting with but otherwise shouldn't cause too much overhead otherwise.
…nton DirEntry: warn about use potential races when fetching metadata or file_type r? @the8472
…345,adwinwhite Avoid ICE when closure expected signature contains non-lifetime bound variables ## Summary Fixes rust-lang#154537. Fixes rust-lang#108814. Fixes rust-lang#110627. Fixes rust-lang#125841. Avoid an Internal Compiler Error (ICE) when type-checking a closure against an expected signature that contains non-region bound variables, such as with `feature(non_lifetime_binders)`. ## Problem Given code like: ```rust #![feature(non_lifetime_binders)] fn take() -> impl for<T> Fn() -> T { || 3 } ``` When checking the closure expression against the expected `Fn` trait bound, `rustc_hir_typeck` attempts to liberate late-bound regions in the closure signature via `TyCtxt::liberate_late_bound_regions` / `instantiate_bound_regions_uncached`. These functions expect the binder to contain region/lifetime variables. When the signature instead contains a higher-ranked type parameter (`for<T>`), the bound type reaches `rustc_middle::ty::fold` and triggers: ```text bug!("unexpected bound ty in binder: ...") ``` resulting in an ICE. ## Solution Closures cannot be generic over non-lifetime parameters. This PR updates `rustc_hir_typeck::closure` to avoid deriving closure expectations from signatures containing non-region bound variables: 1. Ignore projection clauses containing non-region bound variables when extracting closure expectations in `extract_sig_from_projection` and `extract_sig_from_projection_and_future_bound`. 2. Fall back to signature inference without an expected signature in `sig_of_closure_with_expectation` when `expected_sig.sig.has_non_region_bound_vars()`. With this change, the compiler reports the expected type mismatch (`E0271`) instead of aborting with an ICE. ## Test Case Added a UI regression test: ```text tests/ui/traits/non_lifetime_binders/bound-type-relate.rs ``` The test verifies that the compiler produces a normal type error rather than an Internal Compiler Error. ## Testing ```text ./x.py test tests/ui/traits/non_lifetime_binders/bound-type-relate.rs ``` ## LLM Disclosure I used an LLM to assist with locating the failure in the test logs, tracing the compiler type-checking path, and drafting portions of this PR description. All code changes, diagnostics, and test verifications were reviewed and tested manually.
…isDenton xous: tcpstream fix timeout rounding with small and wrap large values connect_timeout also now reject Duration::ZERO
…risDenton remove_dir_all: document and test symlink behavior more explicitly `remove_dir_all` on Unix will currently delete symlinks to files, but on Windows it will not. Let's explicitly test for this and clarify the docs. Cc @the8472
enable fchmodat_works test under android I missed this one in rust-lang#163548. I don't know why we have what seems like duplicate tests for `fs::set_permissions_nofollow`, but more test coverage seems better so 🤷 . @asder8215 -- all these tests got added in rust-lang#158168 apparently; why the duplication?
Update books ## rust-lang/nomicon 2 commits in 46fc44214afcd159be175c8ee62887cad04f615d..b0bb569883a3e65ab19d4f1adf1b8dbc1629d0a6 2026-10-17 09:16:09 UTC to 2026-10-16 23:50:01 UTC - De-duplicate the description of FFI-unwind interaction (rust-lang/nomicon#530) - Update for the removal of `Unique<T>` (rust-lang/nomicon#529) ## rust-lang/reference 5 commits in a286e1ecb8ce193d50056e4bb042eea9b23876ef..2dafab96d919d6ab2884488e970bf95610ff83eb 2026-10-13 19:23:53 UTC to 2026-10-06 18:53:56 UTC - replace deprecated std::f64 constants with associated constants on f64 (rust-lang/reference#2385) - Mark `mdbook-spec` as not publishable (rust-lang/reference#2384) - Guarantee that the never type `!` is zero-sized and 1-aligned. (rust-lang/reference#2309) - Remove stray empty line in example (rust-lang/reference#2380) - PhantomData: clearly document alignment of 1, add to glossary examples (rust-lang/reference#2375)
|
@bors r+ force rollup=never p=5 |
This comment has been minimized.
This comment has been minimized.
|
📣 Toolstate changed by #164613! Tested on commit a7c37f9. 🎉 nomicon on windows: test-fail → test-pass (cc @traviscross @JohnTitor). |
Tested on commit rust-lang/rust@a7c37f9. Direct link to PR: <rust-lang/rust#164613> 🎉 nomicon on windows: test-fail → test-pass (cc @traviscross @JohnTitor). 🎉 nomicon on linux: test-fail → test-pass (cc @traviscross @JohnTitor).
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 39b126b (parent) -> a7c37f9 (this PR) Test differencesShow 137 test diffsStage 0
Stage 1
Stage 2
Additionally, 117 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 a7c37f9f0ee5e93396106e9de20f4a86b4154e63 --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 |
|
Finished benchmarking commit (a7c37f9): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (secondary -0.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 0.7%, secondary 0.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 488.638s -> 491.717s (0.63%) |
|
📌 Perf builds for each rolled up PR:
parent commit: 39b126b8e2 In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: |
Successful merges:
wasm32-none-componenttarget definition #162615 (Add awasm32-none-componenttarget definition)r? @ghost
Create a similar rollup