Skip to content

Conversation

@Kobzol
Copy link
Owner

@Kobzol Kobzol commented Dec 29, 2025

No description provided.

bors and others added 13 commits December 25, 2025 13:47
…enkov

Recursive delegation improvements

This PR fixes interaction of recently added recursive delegations with other features, such as generics inheritance and attributes inheritance. It fixes rust-lang/rust#150152 ICE, it is a part of the delegation feature rust-lang/rust#118212. This issue contains two examples with different causes of ICE:
- The cause of the [first one](rust-lang/rust#150152 (comment)) is incorrect determination of whether we are in a trait impl [here](https://github.com/rust-lang/rust/blob/c4aa646f15e40bd3e64ddb5017b7b89b3646ac99/compiler/rustc_resolve/src/late.rs#L3553), we were using `trait_id.is_some()` which in case of an unresolved trait was `None`, we should have used `of_trait` from AST level for this purpose
- The cause of the [second example](rust-lang/rust#150152 (comment)) is that with recursive delegations we started to provide DefIds of the root function of the delegation for recursive delegations instead of actual delegee id. This situation is described in comments in `DelegationIds` struct, now we provide different DefIds (either immediate delegee DefId or the root function DefId in `lower_delegation` method

Moreover, this PR fixes how attributes inheritance work with recursive delegations, earlier we would have copied attributes from the root function, however now we inherit attributes from the actual delegee, for this purpose we store attributes to inherit for delegations too, in the same way they were stored for functions.

r? `@petrochenkov`
stdarch subtree update

Subtree update of `stdarch` to rust-lang/stdarch@6111906.

Created using https://github.com/rust-lang/josh-sync.

r? `@sayantn`

My first josh sync, it lgtm, but let me know if I missed something.
I'm especially looking forward to the amd GPU module, which we want to use for the offload project.
…e-numbers, r=yotamofek

Fix copy code example with line numbers

Fixes rust-lang/rust#150339.

Since the line numbers are now included in the actual highlighted code, we need to filter them out when we "copy" the code.

r? `@yotamofek`
JumpThreading: compute place and value indices on-demand

Profiling JumpThreading reveals that a large part of the runtime happens constructing the place and value `Map`. This is unfortunate, as jump-threading may end up not even doing anything.

The cause for this large up-front cost is following: `Map` attempts to create a `PlaceIndex` for each place that *may* hold a relevant value. This means all places that appear in MIR, but also all places whose value is accessed by a projection of a copy of a larger place.

This PR refactors the creation of `Map` to happen on-demand: place and value indices are created when threading computation happens.

The up-front mode is still relevant for DataflowConstProp, so is not touched.
…Simulacrum

Add `MaybeDangling` to `core`

This is the library part of adding `MaybeDangling`. Note that it doesn't actually do anything described in its docs (yet), I'll make a separate PR for that.

Tracking issue: rust-lang/rust#118166.

r? libs
cc `@RalfJung`
Update cargo submodule

17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412
2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000
- fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435)
- feat(index): Stabilize pubtime (rust-lang/cargo#16372)
- Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091)
- chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429)
- fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable)  (rust-lang/cargo#16419)
- chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416)
- fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414)
- fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413)
- fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408)
- Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404)
- Add best pratice for how to check in generated files (rust-lang/cargo#16405)
- test: Use a larger default term width (rust-lang/cargo#16403)
- Document more services and permissions of the cargo team (rust-lang/cargo#16402)
- fix(new): Improve quality of package name error messages (rust-lang/cargo#16398)
- feat(log): add more log events (rust-lang/cargo#16390)
- chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395)
- Cache submodule into git db (rust-lang/cargo#16246)

r? ghost
…index, r=Mark-Simulacrum

Fix `LinkedList::CursorMut::pop_front` to correctly update index

When `pop_front` was called while the cursor pointed to the front element, `move_next` incremented the index but it was never decremented afterwards, causing the index to incorrectly report 1 instead of 0.

Always decrement the index after popping from front using `saturating_sub` to handle edge cases safely.

Fixes rust-lang/rust#147616
Implement flatten for `Option<&Option<T>>` and `Option<&mut Option<T>>`

Adds `.flatten_ref()` to get a immutable reference of a nested option and `.flatten_mut()` for mutable references.

ACP: rust-lang/libs-team#186
Tracking Issue: rust-lang/rust#149221
This updates the rust-version file to 93716ad49f2508b0d501caf586b364490628752a.
Pull recent changes from https://github.com/kobzol/rust via Josh.

Upstream ref: 93716ad49f2508b0d501caf586b364490628752a
Filtered ref: dc0c307
Upstream diff: rust-lang/rust@e7d4414...93716ad

This merge was created using https://github.com/rust-lang/josh-sync.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants