Merged
Conversation
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: ffb9d94dcf4ade0d534842be3672d5e9f47e1333 Filtered ref: 2f31646593733abae36e4c05b5a54acfb9f1f6bc This merge was created using https://github.com/rust-lang/josh-sync.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: d36f964125163c2e698de5559efefb8217b8b7f0 Filtered ref: 92461731ae79cfe5044e4826160665b77c0363a2 This merge was created using https://github.com/rust-lang/josh-sync.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: 9385c64c95d971329e62917adc4349c8ccdbafe0 Filtered ref: c6ec0de6a92442437c800b4a207ace45d0f6c745 This merge was created using https://github.com/rust-lang/josh-sync.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: caccb4d0368bd918ef6668af8e13834d07040417 Filtered ref: 3074203aaad351997a9863b04e251efa3e4b5f6e Upstream diff: rust-lang/rust@9385c64...caccb4d This merge was created using https://github.com/rust-lang/josh-sync.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: 47cd7120d9b4e1b64eb27c87522a07888197fae8 Filtered ref: b5a5cb8beb5c1ac848a39bfcd0ccaad98015d017 Upstream diff: rust-lang/rust@caccb4d...47cd712 This merge was created using https://github.com/rust-lang/josh-sync.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: 2dc30247c5d8293aaa31e1d7dae2ed2fde908ada Filtered ref: dab12aee0f52f7b83cc62ae565855c731bed502f Upstream diff: rust-lang/rust@47cd712...2dc3024 This merge was created using https://github.com/rust-lang/josh-sync.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: 23d01cd2412583491621ab1ca4f1b01e37d11e39 Filtered ref: 5d28c73d267214190903896b4caf2e40a17a56cb Upstream diff: rust-lang/rust@2dc3024...23d01cd This merge was created using https://github.com/rust-lang/josh-sync.
Update cargo submodule 18 commits in efcd9f58636c1990393d495159045d9c35e43b8f..fe2f314aef06e688a9517da1ac0577bb1854d01f 2026-01-23 13:50:59 +0000 to 2026-01-30 21:52:01 +0000 - feat(lints): Add unused workspace dependency lint (rust-lang/cargo#16571) - docs: Remove redundant homepage link (rust-lang/cargo#16572) - refactor: Remove unused workspace dependencies (rust-lang/cargo#16573) - Re-downgrade curl-sys (rust-lang/cargo#16570) - docs(report): enhance man pages for `cargo report *` (rust-lang/cargo#16430) - fix(lints): Refine redundant metadata lints (rust-lang/cargo#16564) - Prevent `cargo init` in home directory (rust-lang/cargo#16566) - feat(lints): Add redundant_homepage lint (rust-lang/cargo#16561) - feat(lints): Add `non_*_case_features` (rust-lang/cargo#16560) - Update build_std::basic test to ensure index doesn't update (rust-lang/cargo#16559) - feat(lints): Add mutually exclusive `non_{kebab,snake}_case_packages` (rust-lang/cargo#16554) - fix(lints): Pluralize non_kebab_case_bins (rust-lang/cargo#16553) - Add -Z json-target-spec (rust-lang/cargo#16557) - feat(lint): Add redundant_readme lint (rust-lang/cargo#16552) - chore(deps): update msrv (rust-lang/cargo#16387) - tests: add regression test for --artifact-dir on stable (rust-lang/cargo#16541) - Don't check the specific build-std output (rust-lang/cargo#16551) - Fix build-std lto test to run on other platforms (rust-lang/cargo#16550)
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@44e34e1 Filtered ref: rust-lang/compiler-builtins@94ca1ba Upstream diff: rust-lang/rust@23d01cd...44e34e1 This merge was created using https://github.com/rust-lang/josh-sync.
Pass `DepNode` by reference more places Pass `DepNode` by reference more places as it would typically need 3 registers.
GVN: Elide more intermediate transmutes We already skipped intermediate steps like `u32` or `i32` that support any (initialized) value. This extends that to also allow skipping intermediate steps whose values are a superset of either the source or destination type. Most importantly, that means that `usize` → `NonZeroUsize` → `ptr::Alignment` and `ptr::Alignment` → `NonZeroUsize` → `usize` can skip the middle because `NonZeroUsize` is a superset of `Alignment`. Then `Alignment::as_usize` is updated to take advantage of that and let us remove some more locals in a few places. r? cjgillot
…s, r=Amanieu Add new `byte_value` and `char_value` methods to `proc_macro::Literal` Part of rust-lang/rust#136652. It adds two more methods to get unescaped `u8` and `char` from `proc_macro::Literal`. r? @Amanieu
Tweak `VecCache` to improve performance This has some tweaks to `VecCache` to improve performance. - It saves a `compare_exchange` in `complete` using the new `put_unique` function. - It removes bound checks on entries. These are instead checked in the `slot_index_exhaustive` test. - `initialize_bucket` is outlined and tuned for that. cc @Mark-Simulacrum
UnixStream/UnixListener on Windows Hi, I re impl this. Hope you test it.
…mann Codegen tests for Arm Cortex-R82 This PR adds checks to the `aarch64v8r-unknown-none` target to verify that if the Cortex-R82 CPU is enabled (with `-Ctarget-cpu=cortex-r82`), that the appropriate additional AArch64 features are enabled. This is important because Cortex-R82 is (currently) the only processor implementing Armv8-R AArch64 and it implements a number of Armv8 features over and above the baseline for the architecture. Many of these features are of interest to safety-critical firmware development (for example `FEAT_RASv1p1`, which adds support for the *RAS Common Fault Injection Model Extension*) and so we anticipate them being enabled when building such firmware. We are offering these tests upstream in-lieu of a full Cortex-R82 specific target because we understand the Project has a preference for architecture-baseline targets over CPU-specific targets. ~~This PR builds on and requires rust-lang/rust#150863, but we've pulled them out as a separate PR.~~ That PR has been merged. ## Ownership This PR was developed by Ferrous Systems on behalf of Arm. Arm is the owner of these changes.
…jieyouxu Add codegen test for SLP vectorization close: rust-lang/rust#142519 This PR adds a codegen regression test for rust-lang/rust#142519. A regression in LLVM to fail to auto-vectorize, leading to significant performance loss. The SLP vectorizer correctly groups the 4-byte operations into <4 x i8> vectors. The loop state is maintained in SIMD registers (phi <4 x i8>). The test remains robust across architectures (AArch64 vs x86_64) by allowing flexible store types (i32 or <4 x i8>).
rustc-dev-guide subtree update Subtree update of `rustc-dev-guide` to 4bd7280. Created using https://github.com/rust-lang/josh-sync. r? @ghost
Rollup of 11 pull requests Successful merges: - rust-lang/rust#151378 (Codegen tests for Arm Cortex-R82) - rust-lang/rust#151936 (Move the `fingerprint_style` special case into `DepKindVTable` creation) - rust-lang/rust#152018 (Move bigint helper tracking issues) - rust-lang/rust#151958 (Add codegen test for SLP vectorization) - rust-lang/rust#151974 (Update documentation for `Result::ok()`) - rust-lang/rust#151975 (Work around rustfmt giving up on a large expression) - rust-lang/rust#151990 (Fix missing unused_variables lint when using a match guard) - rust-lang/rust#151995 (stabilize ptr_as_ref_unchecked) - rust-lang/rust#151999 (attribute parsing: pass recovery mode to Parser.) - rust-lang/rust#152009 (Port rustc_preserve_ub_checks to attr parser) - rust-lang/rust#152022 (rustc-dev-guide subtree update) Failed merges: - rust-lang/rust#151968 (Remove `HasDepContext` by merging it into `QueryContext`)
Use the query vtable in `query_feed` plumbing The `query_feed` function needs to be able to do two important things with (erased) query values: hash them, and debug-print them. Both of those are things that the query's vtable already knows how to do. So by passing in a vtable to `query_feed`, we can give it a nicer signature, avoid having to unerase values in the function itself, and clean up some caller-side code as well.
Use with_capacity in query_key_hash_verify and PlaceholderExpander Addresses the first two items from rust-lang/rust#137005 (comment).
Pass on the `feedable` query modifier to macros This passes on the `feedable` query modifier to macros so `QueryConfig.feedable` gives the correct result. Currently it's always false even for feedable queries. Fixing this bug enables some consistency checks for feedable queries that were previously not being performed, which has a perf impact.
skip codegen for intrinsics with big fallback bodies if backend does not need them This hopefully fixes the perf regression from rust-lang/rust#148478. I only added the intrinsics with big fallback bodies to the list; it doesn't seem worth the effort of going through the entire list. Fixes rust-lang/rust#149945 Cc @scottmcm @bjorn3
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@db3e99b Filtered ref: rust-lang/compiler-builtins@970db0b Upstream diff: rust-lang/rust@44e34e1...db3e99b This merge was created using https://github.com/rust-lang/josh-sync.
Mark match arms in try and for as being from desugarings. Some of the arms created by these desugarings have an expression which isn't marked as coming from the desugaring. e.g. try generates `Continue(val) => val` where the expression has the span of the original parameter (done for diagnostic purposes). Since the arm created just used that span they end up without a desugaring mark unnecessarily. This is only a minor annoyance with some work I'm doing in clippy.
Minor structural improvements Some small cleanups. r? @davidtwco
…mann Hard code the error code registry for custom drivers And do some cleanups enabled by this.
Fix typos in riscv64a23-unknown-linux-gnu.md
…y, r=JonathanBrouwer Port `rustc_effective_visibility` to the new attribute parser r? @JonathanBrouwer
…lip-msg, r=jieyouxu update compiler stable backport zulip msg I'd like to update the message when stable backports (for t-compiler) Zulip topics are opened. Stable backports mention the channel i.e. also people who might not have context, example: [#t-compiler/backports > #150590: stable-nominated @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/474880-t-compiler.2Fbackports/topic/.23150590.3A.20stable-nominated/near/569989784) Beta backports mention author+reviewer (which fits better), example: [#t-compiler/backports > #151896: beta-nominated @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/474880-t-compiler.2Fbackports/topic/.23151896.3A.20beta-nominated/near/571171604) This patch makes the `stable` backport opening message just like the `beta` backport one. Thanks
Clean up query macros for `cache_on_disk_if` This PR aims to make the macros for dealing with `cache_on_disk_if` a bit easier to read and work with. There should be no change to compiler behaviour.
compiler-builtins subtree update Subtree update of `compiler-builtins` to rust-lang/compiler-builtins@6a67a9f. Created using https://github.com/rust-lang/josh-sync. r? @ghost
Update cargo submodule 27 commits in fe2f314aef06e688a9517da1ac0577bb1854d01f..0c9e687d237ff04b53ccb67b4ce63e9483789e88 2026-01-30 21:52:01 +0000 to 2026-02-11 05:58:30 +0000 - chore: downgrade to libc@0.2.180 (rust-lang/cargo#16624) - fix(script): Load config relative to the script (rust-lang/cargo#16620) - fix(lints): Don't run on-by-default lints when MSRV is too old (rust-lang/cargo#16618) - fix(build): Remove deprecated, unstable --out-dir (rust-lang/cargo#16608) - fix(script): Make the lockfile script-specific independent of build-dir (rust-lang/cargo#16619) - fix(lockfile-path): Respect the config in fix, install (rust-lang/cargo#16617) - chore: upgrade to gix@0.79.0 (rust-lang/cargo#16615) - chore: downgrade to libc@0.2.179 (rust-lang/cargo#16613) - feat(timings): Enable text selection in the charts (rust-lang/cargo#16607) - Add host.runner for wrapping host build target executions (rust-lang/cargo#16599) - feat(schema): Add `impl Copy for RustVersion` (rust-lang/cargo#16609) - refactor(lints): Cleanup (rust-lang/cargo#16610) - refactor(timings): Remove `CanvasRenderer` in favor of `SvgRenderer` (rust-lang/cargo#16602) - Fix known hosts parsing (rust-lang/cargo#16596) - chore: pin openssl-src to 300.5.4 (rust-lang/cargo#16601) - chore(deps): bump time from 0.3.46 to 0.3.47 (rust-lang/cargo#16593) - feat(lints): Add missing_lints_inheritance (rust-lang/cargo#16588) - chore(deps): bump git2 from 0.20.3 to 0.20.4 (rust-lang/cargo#16589) - chore(deps): update msrv (3 versions) to v1.91 (rust-lang/cargo#16587) - feat(lints): Add unused_workspace_package_fields lint (rust-lang/cargo#16585) - Add command field to BuildStarted in build-analysis (rust-lang/cargo#16577) - Fix link for lockfile-publish-time (rust-lang/cargo#16582) - docs(cli): Discuss commands and aliases (rust-lang/cargo#16581) - fix(script): Correct style of help message (rust-lang/cargo#16580) - chore(deps): update compatible (rust-lang/cargo#16578) - chore(deps): update crate-ci/typos action to v1.42.3 (rust-lang/cargo#16579) - fix(timings): Only compute `y_ticks` when the `units` is not empty. (rust-lang/cargo#16575)
Update to LLVM 22.1.0-rc3 Update to LLVM 22.1.0-rc3, plus a cherry-pick of llvm/llvm-project#179631 which is still pending backport upstream. Fixes rust-lang/rust#151926. Fixes rust-lang/rust#151832. Fixes rust-lang/rust#151818. Fixes rust-lang/rust#151807. Fixes [#t-compiler/help > Inlining causing function to get replace with TRAP](https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/Inlining.20causing.20function.20to.20get.20replace.20with.20TRAP/with/568824178). Should also address rust-lang/rust#131745, but we should verify that separately.
borrowck: suggest `&mut *x` for pattern reborrows Fixes rust-lang/rust#81059 r? @estebank as you should have some context here, but feel free to re-assign if you don't have time to review right now.
Support ADT types in type info reflection Tracking issue: rust-lang/rust#146922 `#![feature(type_info)]` This PR supports ADT types for feature `type_info` reflection. (It's still a draft PR, with implementation in progress) Note that this PR does not take SemVer into consideration (I left a FIXME comment). As discussed earlier ([comment](rust-lang/rust#146923 (comment))), this requires further discussion. However, I hope we could get an initial implementation to land first, so we can start playing with it. ### Progress / Checklist - [x] Struct support. - [x] Enum - [x] Union - [x] Generics - [ ] ~Methods~ Implemented and to be implemented in other PRs - [ ] ~Traits~ Implemented and to be implemented in other PRs - [x] Rebasing PR to `main` branch ~~(It's currently based on PR rust-lang/rust#151123, so here's an extra commit)~~ - [x] Cleanup and Rebase. - [x] Fix field info for references. (see [comment](rust-lang/rust#151142 (comment))) r? @oli-obk
rustc-dev-guide subtree update Subtree update of `rustc-dev-guide` to 1a02979. Created using https://github.com/rust-lang/josh-sync. r? @ghost
…rouwer allow `deprecated(since = "CURRENT_RUSTC_VERSION")` Motivated by rust-lang/rust#149978.
…Kobzol Remove unused `fluent-syntax` dependency from tidy
Rollup of 7 pull requests Successful merges: - rust-lang/rust#152505 (Sync relnotes for stable 1.93.1) - rust-lang/rust#137487 (Stabilize `assert_matches`) - rust-lang/rust#152281 (borrowck: suggest `&mut *x` for pattern reborrows) - rust-lang/rust#151142 (Support ADT types in type info reflection) - rust-lang/rust#152477 (rustc-dev-guide subtree update) - rust-lang/rust#152488 (allow `deprecated(since = "CURRENT_RUSTC_VERSION")`) - rust-lang/rust#152491 (Remove unused `fluent-syntax` dependency from tidy)
Add note when inherent impl for a alias type defined outside of the crate Fixes rust-lang/rust#141679 r? compiler
Fix passing/returning structs with the 64-bit SPARC ABI Fixes the 64-bit SPARC part of rust-lang/rust#115609 by replacing the current implementation with a new implementation modelled on the RISC-V calling convention code ([SPARC ABI reference](https://sparc.org/wp-content/uploads/2014/01/SCD.2.4.1.pdf.gz)). Pinging `sparcv9-sun-solaris` target maintainers: @psumbera @kulikjak Fixes rust-lang/rust#115336 Fixes rust-lang/rust#115399 Fixes rust-lang/rust#122620 Fixes rust-lang/rust#147883 r? @workingjubilee
Don't compute FnAbi for LLVM intrinsics in backends ~~This removes support for `extern "unadjusted"` for anything other than LLVM intrinsics. It only makes sense in the context of calling LLVM intrinsics anyway as it exposes the way the LLVM backend internally represents types. Perhaps it should be renamed to `extern "llvm-intrinsic"`?~~ Follow up to rust-lang/rust#148533
layout: handle rigid aliases without params fixes rust-lang/rust#151791 r? types
…ing, r=lcnr Borrowck: simplify diagnostics for placeholders This folds the call to `region_from_element` into `RegionInferenceContext`, and simplifies the error variant for this case to only talk about regions as opposed to elements. This is the only case where a `RegionElement` leaks out of region inference, so now they can be considered internal to region inference (though that currently isn't expressed). It also clarifies the type information on the methods called to emphasise the fact that they only ever use placeholder regions in the diagnostics completely ignore any other element. It also adds a bunch of FIXMEs to some fishy statements that conjure universes from what seems like arbitrary integers. This was lifted from rust-lang/rust#142623. r? @lcnr
Add note for `?Sized` params in int-ptr casts diag Close rust-lang/rust#74756
Correctly check if a macro call is actually a macro call in rustdoc highlighter Fixes rust-lang/rust#151904. Issues was that if there was a `!` following an ident, we would always assume it's a macro call... except it's very lacking. I'm actually surprised it went for so long unnoticed. To fix it, I added a check for the next (non-blank) token after the `!`, if it's a `{` or a `[` or a `(`, then only do we consider it to be a macro call. r? @lolbinarycat
fix issue#152482 Close rust-lang/rust#152482
Rollup of 17 pull requests Successful merges: - rust-lang/rust#142415 (Add note when inherent impl for a alias type defined outside of the crate) - rust-lang/rust#142680 (Fix passing/returning structs with the 64-bit SPARC ABI) - rust-lang/rust#150768 (Don't compute FnAbi for LLVM intrinsics in backends) - rust-lang/rust#151152 (Add FCW for derive helper attributes that will conflict with built-in attributes) - rust-lang/rust#151814 (layout: handle rigid aliases without params) - rust-lang/rust#151863 (Borrowck: simplify diagnostics for placeholders) - rust-lang/rust#152159 (Add note for `?Sized` params in int-ptr casts diag) - rust-lang/rust#152434 (Clarify names of `QueryVTable` functions for "executing" a query) - rust-lang/rust#152478 (Remove tm_factory field from CodegenContext) - rust-lang/rust#152498 (Partially revert "resolve: Update `NameBindingData::vis` in place") - rust-lang/rust#152316 (fix: add continue) - rust-lang/rust#152394 (Correctly check if a macro call is actually a macro call in rustdoc highlighter) - rust-lang/rust#152425 (Port #![test_runner] to the attribute parser) - rust-lang/rust#152481 (Use cg_ssa's produce_final_output_artifacts in cg_clif) - rust-lang/rust#152485 (fix issue#152482) - rust-lang/rust#152495 (Clean up some subdiagnostics) - rust-lang/rust#152502 (Implement `BinaryHeap::from_raw_vec`)
Start using pattern types in libcore (NonZero and friends) part of rust-lang/rust#136006 This PR only changes the internal representation of `NonZero`, `NonMax`, ... and other integral range types in libcore. This subsequently affects other types made up of it, but nothing really changes except that the field of `NonZero` is now accessible safely in contrast to the `rustc_layout_scalar_range_start` attribute, which has all kinds of obscure rules on how to properly access its field.
…ouwer,Nadrieril
Make operational semantics of pattern matching independent of crate and module
The question of "when does matching an enum against a pattern of one of its variants read its discriminant" is currently an underspecified part of the language, causing weird behavior around borrowck, drop order, and UB.
Of course, in the common cases, the discriminant must be read to distinguish the variant of the enum, but currently the following exceptions are implemented:
1. If the enum has only one variant, we currently skip the discriminant read.
- This has the advantage that single-variant enums behave the same way as structs in this regard.
- However, it means that if the discriminant exists in the layout, we can't say that this discriminant being invalid is UB. This makes me particularly uneasy in its interactions with niches – consider the following example ([playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=5904a6155cbdd39af4a2e7b1d32a9b1a)), where miri currently doesn't detect any UB (because the semantics don't specify any):
<details><summary>Example 1</summary>
```rust
#![allow(dead_code)]
use core::mem::{size_of, transmute};
#[repr(u8)]
enum Inner {
X(u8),
}
enum Outer {
A(Inner),
B(u8),
}
fn f(x: &Inner) {
match x {
Inner::X(v) => {
println!("{v}");
}
}
}
fn main() {
assert_eq!(size_of::<Inner>(), 2);
assert_eq!(size_of::<Outer>(), 2);
let x = Outer::B(42);
let y = &x;
f(unsafe { transmute(y) });
}
```
</details>
2. For the purpose of the above, enums with marked with `#[non_exhaustive]` are always considered to have multiple variants when observed from foreign crates, but the actual number of variants is considered in the current crate.
- This means that whether code has UB can depend on which crate it is in: rust-lang/rust#147722
- In another case of `#[non_exhaustive]` affecting the runtime semantics, its presence or absence can change what gets captured by a closure, and by extension, the drop order: rust-lang/rust#147722 (comment)
- Also at the above link, there is an example where removing `#[non_exhaustive]` can cause borrowck to suddenly start failing in another crate.
3. Moreover, we currently make a more specific check: we only read the discriminant if there is more than one *inhabited* variant in the enum.
- This means that the semantics can differ between `foo<!>`, and a copy of `foo` where `T` was manually replaced with `!`: rust-lang/rust#146803
- Moreover, due to the privacy rules for inhabitedness, it means that the semantics of code can depend on the *module* in which it is located.
- Additionally, this inhabitedness rule is even uglier due to the fact that closure capture analysis needs to happen before we can determine whether types are uninhabited, which means that whether the discriminant read happens has a different answer specifically for capture analysis.
- For the two above points, see the following example ([playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2024&gist=a07d8a3ec0b31953942e96e2130476d9)):
<details><summary>Example 2</summary>
```rust
#![allow(unused)]
mod foo {
enum Never {}
struct PrivatelyUninhabited(Never);
pub enum A {
V(String, String),
Y(PrivatelyUninhabited),
}
fn works(mut x: A) {
let a = match x {
A::V(ref mut a, _) => a,
_ => unreachable!(),
};
let b = match x {
A::V(_, ref mut b) => b,
_ => unreachable!(),
};
a.len(); b.len();
}
fn fails(mut x: A) {
let mut f = || match x {
A::V(ref mut a, _) => (),
_ => unreachable!(),
};
let mut g = || match x {
A::V(_, ref mut b) => (),
_ => unreachable!(),
};
f(); g();
}
}
use foo::A;
fn fails(mut x: A) {
let a = match x {
A::V(ref mut a, _) => a,
_ => unreachable!(),
};
let b = match x {
A::V(_, ref mut b) => b,
_ => unreachable!(),
};
a.len(); b.len();
}
fn fails2(mut x: A) {
let mut f = || match x {
A::V(ref mut a, _) => (),
_ => unreachable!(),
};
let mut g = || match x {
A::V(_, ref mut b) => (),
_ => unreachable!(),
};
f(); g();
}
```
</details>
In light of the above, and following the discussion at rust-lang/rust#138961 and rust-lang/rust#147722, this PR ~~makes it so that, operationally, matching on an enum *always* reads its discriminant.~~ introduces the following changes to this behavior:
- matching on a `#[non_exhaustive]` enum will always introduce a discriminant read, regardless of whether the enum is from an external crate
- uninhabited variants now count just like normal ones, and don't get skipped in the checks
As per the discussion below, the resolution for point (1) above is that it should land as part of a separate PR, so that the subtler decision can be more carefully considered.
Note that this is a breaking change, due to the aforementioned changes in borrow checking behavior, new UB (or at least UB newly detected by miri), as well as drop order around closure captures. However, it seems to me that the combination of this PR with rust-lang/rust#138961 should have smaller real-world impact than rust-lang/rust#138961 by itself.
Fixes rust-lang/rust#142394
Fixes rust-lang/rust#146590
Fixes rust-lang/rust#146803 (though already marked as duplicate)
Fixes parts of rust-lang/rust#147722
Fixes rust-lang/miri#4778
r? @Nadrieril @RalfJung
@rustbot label +A-closures +A-patterns +T-opsem +T-lang
Shallow resolve ty and const vars to their root vars Continuation of rust-lang/rust#147193
Use `scope` for `par_slice` instead of `join` This uses `scope` instead of nested `join`s in `par_slice` so that each group of items are independent and do not end up blocking on another.
This updates the rust-version file to 139651428df86cf88443295542c12ea617cbb587.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@1396514 Filtered ref: 30addec Upstream diff: rust-lang/rust@44e34e1...1396514 This merge was created using https://github.com/rust-lang/josh-sync.
Collaborator
|
Thanks for the PR. If you have write access, feel free to merge this PR if it does not need reviews. You can request a review using |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Latest update from rustc.