Rollup of 20 pull requests - #163609
Rollup of 20 pull requests#163609
Conversation
Co-authored-by: Philip Sampaio <philip.sampaio@gmail.com>
Return failed projection obligations from deep normalization instead of retrying aliases through infallible fallback. Keep regular normalization recovery by rebuilding projection obligations from the original aliases.
Rustc already defaults to this for regular items whenever possible. Overriding it would only lead to linker errors. And for depending on the exact codegen unit partitioning rustc uses, so there it is a bad idea to use it too.
Rustc already defaults to this for #[no_mangle]/#[export_name] items. There is no reason to explicitly use it.
A common definition is like a weak definition except that it must be a zero-initialized static and when merging two common symbols with the same name, the size and alignment are set to the higher of both symbols. This is used for tentative definitions in C and doesn't have any reason to exist outside of that. This behavior doesn't work across dylibs and common symbols have inconsistent behavior across linkers [1]. It is also fragile to rely on getting the largest size of all common symbol definitions as a (possibly smaller) global definition can override it. Link: https://maskray.me/blog/all-about-common-symbols [1]
The ICE was caused because the code assumed the import_ids would always be the same for all candidates, but it's not true. Sometimes the candidate is ambiguous with import_ids to be logged and sometimes the candidate is not ambigous and does not have the ids. Mixing the two (flag = true, without import_ids) ICEs. Co-authored-by: Philip Sampaio <philip.sampaio@gmail.com>
…istener::bind_addr
the test records what the compiler emits today: impl_trait_overcapture_suggestion anchors its suggestion on the opaque def span, which for an opaque inside an attribute macro expansion is the attribute itself, not a type position. the suggestion is machine-applicable, so edition migration applies it and produces error: expected item after attributes
…ro expansion impl_trait_overcapture_suggestion anchored every suggestion on tcx.def_span(opaque_def_id) with no expansion check. for an opaque created inside an attribute macro expansion that span is the attribute, which is not a type position, so applying the machine-applicable suggestion breaks the file the obvious patch of calling can_be_used_for_suggestions() on that span directly suppresses all suggestions including for ordinary code, because ast lowering stamps DesugaringKind::OpaqueTy onto the opaque span at compiler/rustc_ast_lowering/src/lib.rs:1825, making from_expansion() unconditionally true. the fix calls parent_callsite() to peel that single desugaring layer and asks can_be_used_for_suggestions() about the span underneath the guard sits at function entry rather than beside the rpit_span push because the apit rename and the generics-list insertion are anchored on the same span, so one check covers all three fixes rust-lang#139567
- Introduce `Subdiag::dedup_hash`, which mirrors `DiagInner::dedup_hash` and is necessary for the subsequent commits. - Change the name and structure of `not_yet_emitted` to be clearer. - Change `retain_mut` to `retain`; mutability isn't required.
Currently deduplication erroneously has no effect with incremental enabled because the span parent gets included in the hash used for deduplication.
So it applies the `#[inline]` to every method, not just the first one.
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 c36f145 (parent) -> a5c10c3 (this PR) Test differencesShow 1934 test diffsStage 1
Stage 2
Additionally, 1889 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 a5c10c39125788787370a1ab11c954b9dff37859 --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 (a5c10c3): 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)This perf run didn't have relevant results for this metric. CyclesResults (secondary 4.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.1%, secondary -0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 489.203s -> 490.07s (0.18%) |
|
📌 Perf builds for each rolled up PR:
parent commit: c36f145719 In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: |
View all comments
Successful merges:
UnixDatagram::bind_addrandUnixListener::bind_addr#163580 (Provide better doc code example forUnixDatagram::bind_addrandUnixListener::bind_addr)f16inline ASM support tospirv.rs#163281 (Addf16inline ASM support tospirv.rs)#[macro_export]on declarative macro check torustc_attr_parsing#163314 (move#[macro_export]on declarative macro check torustc_attr_parsing)const impl PartialEqforf16b#163530 (const impl PartialEqforf16b)AllocatorNightlyless clever #163590 (MakeAllocatorNightlyless clever)r? @ghost
Create a similar rollup