Rustc pull update - #2215
Open
workflows-stdarch[bot] wants to merge 100 commits into
Open
Conversation
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@80ad557 Filtered ref: rust-lang/rust-analyzer@7f4e321 Upstream diff: rust-lang/rust@1174f78...80ad557 This merge was created using https://github.com/rust-lang/josh-sync.
Rustc pull update
…essages fix: Correct missing-args messages for sched_getaffinity and getenv shims
…t-fn-body Replace make constructor with syntaxFactory in utils/gen trait fn body
fix: complete envs in nested `env!()`
fix: postfix completions include nots prefix-expr
fix: Improve inserted order for trait_impl_redundant_assoc_item
impl Display type hint inlay hints at the end of the line #4318
feat: add expected name on simple enum variant
Fix extract function invalid self param
feat: add support for folding ranges for chained expressions
feat: offer on tail-expr with else-branch for if_let_to_guarded assist
Publish no-server to Code Marketplace and OpenVSX
fix: Fix a cycle in bounds lowering
…ys-proc make matching brace work when cursor not at bracket
Bump perf-event from 0.4.7. to 0.4.8
…pace-loading fix: load rust-analyzer.toml for virtual workspaces
…gnostics fix: Stale diagnostics when a custom check command is configured
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@e22c616 Filtered ref: rust-lang/rust-analyzer@37dc6b7 Upstream diff: rust-lang/rust@e8e4541...e22c616 This merge was created using https://github.com/rust-lang/josh-sync.
minor: Sync from downstream
fix: Port call expr type checking and closure upvar inference from rustc
fix: resolve comparison operators to explicit trait impls (#13332)
feat(completion): reduce relevance for deprecated items
perf: optimize allocation strategies of output/parser/event
feat: add .new postfix completion based on expected type (rust-lang/r…
feat: handle if matches!() for replace_if_let_with_match
…ath-when-prefer-prelude-false fix: avoid prelude paths when `imports.preferPrelude` is false
fix: use Pattern_White_Space for whitespace handling
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@1d72d7e Filtered ref: rust-lang/rust-analyzer@889bca8 Upstream diff: rust-lang/rust@e22c616...1d72d7e This merge was created using https://github.com/rust-lang/josh-sync.
minor: Sync from downstream
feat(ide-diagnostics): add diagnostics for invalid union patterns (E0784)
fix: no generate with default assoc item
Bump gen-lsp-types to v0.10.0
hir-ty: walk container exprs for unused_must_use
…x-panic Avoid index panic when flycheck list is empty
…nt-array-rest fix: Do not assume array destructuring assignments with rest pattern are constant-sized
fix: Respect `references.exclude[Tests/Imports]` in references lens
feat: Support inactive-code diagnostic in macros
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@2c39ff4 Filtered ref: rust-lang/rust-analyzer@3b5a9a7 Upstream diff: rust-lang/rust@7fb284d...2c39ff4 This merge was created using https://github.com/rust-lang/josh-sync.
Rustc pull update
internal: Download all artifacts in a single step
internal: Drop `zigbuild` support
fix: emit E0600 when unary `!`/`-` is applied to unsupported type
minor: skip iter excludes 'into_iter' method
fix: allow `asm!` label blocks to diverge
perf: Optimize the heck out of the storage of token trees
perf: Push nominal obligations instead of returning them `WfPredicates::nominal_obligations` built a per-predicate `Vec` of origins and a fully instantiated `InstantiatedPredicates` before collecting the result. Instead, this PR walks the `predicates_of` parent chain by recursion and instantiate each level directly into the result, which is allocated once with the exact size. Most items have no parent, so that case is handled in `nominal_obligations` inline, so this common path stays free of calls.
fix: Fix HIR lowering of params of trait assoc fns
fix: Push a generic params scope for consts
allow `-Ldependency` search paths for panic runtimes Part of [build-std=always RFC](https://rust-lang.github.io/rfcs/3874-build-std-always.html). This PR supports `-Ldependency=` search paths for panic runtimes. This will allow Cargo to treat panic runtimes as regular transitive dependencies, rather than special-casing them. To do so: 1. During panic runtime injection we remove the early‑return `only_rlib` check. As a result the panic runtime is injected as a conditional dependency when building `std` and is subsequently included in `std`'s metadata. When building a crate that uses `std`, the panic runtime is resolved through `resolve_crate_deps` in the same way as any other transitive dependency. </br> For a prebuilt `std` (unlike `build-std`), the `-Cpanic=` option passed to `std` may differ from that passed to its dependents, so we might still need to inject another panic runtime as a direct dependency. However, this is not important in the context of prebuilt std. 2. `NoPanicStrategy` is checked only for `panic_abort`. We can compile `panic_unwind` with `-Cpanic=abort` for some targets. This was previously overlooked. #### Summary of the history and discussions in this PR 1. In the first iteration of this PR `PathKind` for injected dependencies was simply changed from `-Lcrate=` to `-Ldependency`, but this raised a [concern](rust-lang/rust#160007 (comment)). Bjorn3 [suggested](rust-lang/rust#160007 (comment)) to include both panic runtimes as a dependency of `std` so we don't have to inject it as a dependency for any user of `std`. The correct one should then be activated later in `dependency_format.rs`. 2. In the second iteration Bjorn3's suggestion was implemented. The problem was that for `build-std=always`, we might want to avoid building `panic_unwind` when not necessary. From the compiler perspective we need to </br> 2.1. Either always resolve `panic_unwind` and ignore any resulting error. (might lead to bugs) 2.2. Or conditionally resolve `panic_unwind`. For `build-std` we might rely on `-Cpanic=` option for this in accordance with [panic strategies](https://rust-lang.github.io/rfcs/3874-build-std-always.html#panic-strategies) but for prebuilt `std` this will fail for some targets. </br> It was decided to relax the implementation so we can inject panic runtime as direct dependency for prebuilt `std`. 3. Third iteration: we are here cc @adamgemmell
This makes it clear that it is only meant for LLVM intrinsics and not for defining or calling arbitrary user functions.
Rename extern "unadjusted" to extern "llvm-intrinsic" This makes it clear that it is only meant for LLVM intrinsics and not for defining or calling arbitrary user functions. Follow up to rust-lang/rust#160077
…kang Refactor the `#[allow(dead_code)]` propagation for impl items of traits Extracted from rust-lang/rust#157885. This PR does the refactor and corrects the previous implementation. The following will fail currently ([play](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2024&gist=3279902b2d2e6b0fe75c5af565b1cddd)): ```rust #![deny(dead_code)] #![deny(unfulfilled_lint_expectations)] #[allow(dead_code)] pub trait Tr { fn foo(&self); } struct Foo; impl Tr for Foo { fn foo(&self) { bar(); } } #[expect(dead_code)] fn bar() {} fn main() {} ``` After this PR, we could handle the `#[allow(dead_code)]` propagation correctly, and should get perf improvement.
Consolidate LLVM skip in check builds in bootstrap Before it was distributed amongst two places, which made it harder to follow the logic, and the `RUST_CHECK` logic was also applied for *anything* being built, even though it is only relevant for rustc itself. This PR centralizes the handling, and also enables it for `doc` builds. So `./x doc compiler` now doesn't require building LLVM 🎉 r? jieyouxu
Collaborator
|
Thanks for the pull request, and welcome! The Rust Project has assigned @sayantn (or someone else) to review your changes, you should hear from them (or someone else) within the next two weeks. Why was this reviewer chosen?The reviewer was selected based on:
|
`rust-analyzer` subtree update Subtree update of `rust-analyzer` to rust-lang/rust-analyzer@f899669. Created using https://github.com/rust-lang/josh-sync. r? @ghost
This updates the rust-version file to 2e2b193f8ada105f27608b7be81c293e0d7292cb.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@2e2b193 Filtered ref: 70bf76b Upstream diff: rust-lang/rust@da51146...2e2b193 This merge was created using https://github.com/rust-lang/josh-sync.
github-actions
Bot
force-pushed
the
rustc-pull
branch
from
September 3, 2026 05:20
3c3bf0f to
cf267c3
Compare
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.