Repository navigation
Rollup of 6 pull requests - #164708
Rollup of 6 pull requests#164708
Conversation
Constructing `expected_ty` when either cfi-diag or cfi-recover is enabled, causes rustc to format function argument and return types using the Display trait. Calling Display::fmt on user-defined/ADT types calls `trimmed_def_paths` requiring compiler diagnostic causing a crash within rustc if the crate is built without errors/warnings. To avoid this, it needs to be wrapped by `rustc_middle::ty::print::with_no_trimmed_paths!`.
handle higher-ranked preds in imperfect derives diagnostic `trait_args` can contain escaping bound vars if we need to prove something like `for<'a> &'a T: Clone`, and since we call `skip_binder()` on `parent_trait_pred` to build the new trait ref's args, we need to rebind any bound vars we may encounter in the args. fixes rust-lang#164376
…rcvalle
Wrap expected_ty for cfi-{diag,recover} in with_no_trimmed_paths
Constructing `expected_ty` when either cfi-diag or cfi-recover is enabled, causes rustc to format function argument and return types using the Display trait.
Calling Display::fmt on user-defined/ADT types calls `trimmed_def_paths` requiring compiler diagnostic causing a crash within rustc if the crate is built without errors/warnings. To avoid this, it needs to be wrapped by `rustc_middle::ty::print::with_no_trimmed_paths!`.
r? @rcvalle
…lify, r=scottmcm Remove redundant `PartialOrd` chaining methods I'm currently trying to do some optimizations using the `PartialOrd` chaining methods, and I noticed that `__chaining_le` and `__chaining_lt` are actually exactly the same for all implementations (and likewise `__chaining_ge`/`__chaining_gt`). In particular, - `__chaining_le`/`__chaining_lt` returns `Continue(())` if `self == other`, else `Break(self <= other)`/`Break(self < other)` - We require that `a <= b` iff `a < b` or `a == b`. So it doesn't matter (for well-behaved impls) if we break with `self <= other` or `self < other`. - All explicit impls of the chaining methods are in std, and well-behaved, as this is an internal API (except tuples and slices may not be well-behaved if their items aren't. For them, equivalence follows from the equivalence for their items, inductively). - All other impls of the chaining methods are using the default impl, based on matching `Option<Ordering>` from `partial_cmp`: https://github.com/rust-lang/rust/blob/1731faea0da5b4ebf881d8e53f98066c17a74711/library/core/src/cmp.rs#L1613-L1617 Using `Ordering::is_le`/`Ordering::is_lt` for `p` is the same here, as `Some(Equal)` gets matched early. Thus, even non-well-behaved `PartialOrd` impls (i.e. those with non-conforming `le`/`lt`/`eq` methods) have identically behaving `__chaining_le`/`__chaining_lt`. We can conclude that merging `__chaining_le`/`__chaining_lt` doesn't change behavior. You can verify the above points by looking at the diff, as every such method pair has been touched. r? scottmcm Picking you as reviewer because you also reviewed my earlier PR that optimized chaining ops on tuples, and appear to also have done some work on these methods before. Feel free to reroll.
Offload safe mutable args with `Region` and `PartitioningStrategy` Now `Region` are lang items and mapped as slices. ~needs rust-lang#156620 to work~ r? @ZuseZ4
Add regression test for async fn declared with #[eii] Fixes rust-lang#154533 The ICE was fixed by rust-lang#156742.
…x, r=petrochenkov Add `#[default]` for `newtype_index!` Add `#[default]` for `newtype_index!`. We can merge it before or after rust-lang#164425. r? @petrochenkov
Rollup of 6 pull requests try-job: dist-various-1 try-job: test-various try-job: test-x86_64-gnu-aux try-job: test-x86_64-msvc-1 try-job: test-aarch64-apple-1 try-job: test-aarch64-apple-2 try-job: test-x86_64-mingw-1 try-job: test-i686-msvc try-job: test-armhf-gnu try-job: test-x86_64-gnu-llvm-22-3
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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 fa0b453 (parent) -> 1a2c479 (this PR) Test differencesShow 157 test diffsStage 1
Stage 2
Additionally, 134 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 1a2c4797ef2570bd76ca5dee34449169bc7dc457 --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 (1a2c479): comparison URL. Overall result: ❌✅ regressions and improvements - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 0.4%, secondary -0.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 0.8%, secondary 0.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 0.0%, secondary 0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 488.322s -> 487.028s (-0.26%) |
|
📌 Perf builds for each rolled up PR:
parent commit: fa0b453578 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:
PartialOrdchaining methods #164684 (Remove redundantPartialOrdchaining methods)RegionandPartitioningStrategy#158076 (Offload safe mutable args withRegionandPartitioningStrategy)#[default]fornewtype_index!#164696 (Add#[default]fornewtype_index!)r? @ghost
Create a similar rollup