Conversation
…Jung Implement `MaybeDangling` compiler support Tracking issue: rust-lang/rust#118166 cc @RalfJung
Update cargo submodule 12 commits in f298b8c82da0cba538516b45b04a480fc501d4c0..90ed291a50efc459e0c380d7b455777ed41c6799 2026-02-24 21:59:20 +0000 to 2026-03-05 15:11:25 +0000 - test(git): Mark a test as non-deterministic (rust-lang/cargo#16706) - Docs: Clarify build script current directory (rust-lang/cargo#16703) - test(replace): Mark a test as non-deterministic (rust-lang/cargo#16700) - chore: bump to 0.97.0; update changelog (rust-lang/cargo#16699) - fix(tests): allow for 'could not' as well as couldn't in test output (rust-lang/cargo#16698) - chore: Upgrade dependencies (rust-lang/cargo#16690) - chore(deps): update crate-ci/typos action to v1.44.0 (rust-lang/cargo#16685) - feat(help): display manpage for nested commands (rust-lang/cargo#16432) - feat: improve parent workspace search error msg (rust-lang/cargo#16669) - feat(fix): Inject an edition into scripts (rust-lang/cargo#16678) - fix(toml): Clarify the edition is on the float (rust-lang/cargo#16676) - fix(toml): show required rust-version in unstable edition error (rust-lang/cargo#16653)
Remove `tls::with_related_context`. This function gets the current `ImplicitCtxt` and checks that its `tcx` matches the passed-in `tcx`. It's an extra bit of sanity checking: when you already have a `tcx`, and you need access to the non-`tcx` parts of `ImplicitCtxt`, check that your `tcx` matches the one in `ImplicitCtxt`. However, it's only used in two places: `start_query` and `current_query_job`. The non-checked alternatives (`with_context`, `with_context_opt`) are used in more places, including some where a `tcx` is available. And things would have to go catastrophically wrong for the check to fail -- e.g. if we somehow end up with multiple `TyCtxt`s. In my opinion it's just an extra case to understand in `tls.rs` that adds little value. This commit removes it. This avoids the need for `tcx` parameters in a couple of places. The commit also adjusts how `start_query` sets up its `ImplicitCtxt` to more closely match how similar functions do it, i.e. with `..icx.clone()` for the unchanged fields. r? @oli-obk
`rust-analyzer` subtree update Subtree update of `rust-analyzer` to 0dc6097. Created using https://github.com/rust-lang/josh-sync. r? @ghost
Fix incorrect trailing comma suggested in no_accessible_fields Fixes rust-lang/rust#149787 r? @estebank I think add new field for AST for it is too heavy change for this issue, here is a trivial fix with source_map, seems enough for it.
Box in `ValTreeKind::Branch(Box<[I::Const]>)` changed to `List`
This is related to trait system refactoring. It fixes the FIXME in `ValTreeKind`
```
// FIXME(mgca): Use a `List` here instead of a boxed slice
Branch(Box<[I::Const]>),
```
It introduces `Interner::Consts`, changes `Branch(Box<[I::Const]>)` to `Branch(I::Consts)`, and updates all relevant places.
r? lcnr
std: add wasm64 to sync::Once and thread_parking atomics cfg guards When targeting `wasm64-unknown-unknown` with atomics enabled, `std::sync::Once` and `thread_parking` fall through to the `no_threads`/`unsupported` implementations because the cfg guards only check for `wasm32`. This causes worker threads to panic with `unreachable` at runtime. The underlying futex implementations already handle both wasm32 and wasm64 correctly, only the cfg guards were missing wasm64. I tested this manually with a multithreaded wasm64 application ([o1js](https://github.com/o1-labs/o1js/)) compiled with `-Z build-std=panic_abort,std` and `-C target-feature=+atomics,+bulk-memory,+mutable-globals` Related: rust-lang/rust#83879 rust-lang/rust#77839 Happy to adjust anything based on feedback
libcore float tests: replace macro shadowing by const-compatible macro This lets us avoid rust-lang/rust#153478. However this means we generate 3 function items per assertion -- or rather, 3*8, since every assertion gets duplicated 8 times (4 float types, each in a const and a non-const variant). That's a lot; is it enough to be concerned about? coretest already takes forever to build. In a quick test, build time increased from 29.8s to 30.8s, but that may also entirely be noise. r? @tgross35
…trochenkov Fix ICE in `offset_of!` error recovery Fixes rust-lang/rust#153236. `offset_of!` was changed in rust-lang/rust#148151 to lower through THIR as a sum of calls to the `offset_of` intrinsic. In the error-recovery case, when no valid field indices are recorded, that lowering synthesized `0` as a `u32` even though the overall `offset_of!` expression has type `usize`. On 64-bit targets, const-eval then tried to write a 4-byte immediate into an 8-byte destination, which caused the ICE.
Do not emit ConstEvaluatable goals if type-const Fixes rust-lang/rust#151631, fixes rust-lang/rust#151477 r? @fmease I'd recommend reviewing commit-by-commit, the diff is less-readable to address a cyclic issue.
…uring-drop, r=estebank,Kivooeo Suppress invalid suggestions in destructuring assignment Fixes rust-lang/rust#152694 When destructuring assignment hits a type with `Drop`, the compiler was emitting two broken suggestions: `ref *&mut String::new()` (invalid syntax) and `.clone()` on a temporary (useless). Root cause: the suggestion logic didn't know these bindings were synthetic from assign desugaring. The fix reuses the existing `AssignDesugar` detection in `BindingFinder` to collect those spans and skip both suggestions.
…JonathanBrouwer refactor: move `check_align` to `parse_alignment` Part of rust-lang/rust#153101 r? @JonathanBrouwer PS: jonathan i'm not sure about what to do with `check_align` now
…tmimi Roll rustfmt reviewers for in-tree rustfmt Noticed in rust-lang/rust#153229 (comment), where because `src/tools/rustfmt` has no corresponding `[assign.owners]` entry, it rolls one of the `fallback` reviewers (Mark and me) which is needless indirection, since if it rolls to Mark, Mark will have to reroll again. This _can_ also be ```toml "/src/tools/rustfmt" = ["rustfmt", "rustfmt-contributors"] ``` which corresponds to https://github.com/orgs/rust-lang/teams/rustfmt and https://github.com/orgs/rust-lang/teams/rustfmt-contributors respectively. I will double-check with triagebot team if we can use review rotation toggles for `rust-lang/rust` in-tree `rustfmt` specifically. Discussion: [#t-rustfmt > review queue tracking for rust-lang/rust in-tree rustfmt](https://rust-lang.zulipchat.com/#narrow/channel/357797-t-rustfmt/topic/review.20queue.20tracking.20for.20rust-lang.2Frust.20in-tree.20rustfmt/with/576498516) ### Unresolved question - ~~Do we want to start everyone off as off-rotation? Or on-rotation? I plan to start conservatively by preserving existing effective status, which is everyone off-rotation.~~ We will match existing defaults, with everyone starting off as off-team-rotation. r? @ytmimi
Consider try blocks as block-like for overflowed expr The tracking issue for `try_blocks` is rust-lang/rust#31436. The tracking issue for `try_blocks_heterogeneous` is rust-lang/rust#149488. Fixes rust-lang/rustfmt#6799.
Cleanup unused diagnostic emission methods Part of rust-lang/rust#153099. To remove `lint_level`, we need to remove all functions calling it. One of them is `TyCtxt::node_span_lint`, so removing it. r? @JonathanBrouwer
bootstrap.py: fix typo "parallle"
Preserve parentheses around `Fn` trait bounds in pretty printer
The AST pretty printer was dropping parentheses around `Fn` trait bounds in `dyn`/`impl` types when additional `+` bounds were present. For example:
dyn (FnMut(&mut T) -> &mut dyn ResourceLimiter) + Send + Sync
was pretty-printed as:
dyn FnMut(&mut T) -> &mut dyn ResourceLimiter + Send + Sync
Without parens, `+ Send + Sync` binds to the inner `dyn ResourceLimiter` instead of the outer type, producing invalid Rust.
The parser already tracks parentheses via `PolyTraitRef.parens`, but `print_poly_trait_ref` never checked this field. This adds `popen()` and `pclose()` calls when `parens == Parens::Yes`.
…uwer Rollup of 14 pull requests Successful merges: - rust-lang/rust#153466 (`rust-analyzer` subtree update) - rust-lang/rust#151280 (Fix incorrect trailing comma suggested in no_accessible_fields) - rust-lang/rust#152593 (Box in `ValTreeKind::Branch(Box<[I::Const]>)` changed to `List`) - rust-lang/rust#153174 (std: add wasm64 to sync::Once and thread_parking atomics cfg guards) - rust-lang/rust#153485 (libcore float tests: replace macro shadowing by const-compatible macro) - rust-lang/rust#153495 (Fix ICE in `offset_of!` error recovery) - rust-lang/rust#152040 (Do not emit ConstEvaluatable goals if type-const) - rust-lang/rust#152741 (Suppress invalid suggestions in destructuring assignment) - rust-lang/rust#153189 (refactor: move `check_align` to `parse_alignment`) - rust-lang/rust#153230 (Roll rustfmt reviewers for in-tree rustfmt) - rust-lang/rust#153445 (Consider try blocks as block-like for overflowed expr) - rust-lang/rust#153452 (Cleanup unused diagnostic emission methods) - rust-lang/rust#153476 (bootstrap.py: fix typo "parallle") - rust-lang/rust#153483 (Preserve parentheses around `Fn` trait bounds in pretty printer)
Get rid of `QueryVTable::call_query_method_fn` Calling the query method to promote a value is equivalent to doing a cache lookup and then calling `execute_query_fn`, so we can just do that manually instead. There are two “functional” differences here: If a cache hit occurs, we don't record the hit for self-profiling, and we don't register a read of the dep node. In the context of promotion, which touches *all* eligible cache entries just before writing the memory-cached values to disk, those two steps should be unnecessary overhead anyway. r? nnethercote (or compiler)
Gate #![reexport_test_harness_main] properly Address the FIXME Removed from `issue-43106-gating-of-builtin-attrs.rs` since that is for stable attributes only. This would be a breaking change, search of github shows it is mostly but not always used with `#![test_runner]` which is already gated correctly. Details: rust-lang/rust#50297 Feel free to close this issue if you think it is not worth addressing the FIXME...
…uwer Rollup of 2 pull requests Successful merges: - rust-lang/rust#153462 (Bootstrap update) - rust-lang/rust#152210 (Gate #![reexport_test_harness_main] properly)
Don't use incremental disk-cache for query `predicates_of` The `predicates_of` query is a relatively modest wrapper around a few underlying queries that are themselves cached to disk. Removing the additional layer of disk caching appears to be a significant perf win. This query also appears to be the only query that uses a crate-local `cache_on_disk_if` condition, without also using the `separate_provide_extern` modifier. - Discovered via rust-lang/rust#153487 (comment)
Overhaul `ensure_ok` The interaction of `ensure_ok` and the `return_result_from_ensure_ok` query modifier is weird and hacky. This PR cleans it up. Details in the individual commits. r? @Zalathar
This updates the rust-version file to eda4fc7733ee89e484d7120cafbd80dcb2fce66e.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@eda4fc7 Filtered ref: 18005ba Upstream diff: rust-lang/rust@f8704be...eda4fc7 This merge was created using https://github.com/rust-lang/josh-sync.
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.