Rollup of 5 pull requests#153984
Conversation
An explicit dep-kind is redundant here. If we want to find the query name, or check for specific queries, we can inspect the `TaggedQueryKey` instead. Similarly, in cases where the key is some kind of `DefId`, we can extract it directly from the `TaggedQueryKey`.
…names, r=mati865 suggest valid features when target feature is invalid I run into this quite frequently, where I remember some part of a feature name but not the exact name. Now this emits suggestions like ``` error: the feature named `+avx512` is not valid for this target --> $DIR/invalid-attribute.rs:127:18 | LL | #[target_feature(enable = "+avx512")] | ^^^^^^^^^^^^^^^^^^ `+avx512` is not valid for this target | = help: valid names are: `avx512f`, `avx2`, `avx512bw`, `avx512cd`, and `avx512dq` and 74 more ```
…alueFormat-x86_64-gnu, r=marcoieni Fix LegacyKeyValueFormat report from docker build: x86_64-gnu Part of rust-lang#152305 r? @marcoieni
…xyUwU Don't look for non-type-level assoc consts when checking trait object types On main, when looking for assoc items that weren't specified in a given trait object type (via binding), we comb through all (eligible) assoc consts whether type-level or not even though you're not allowed to bind non-type-level assoc consts. That's usually fine because traits containing (eligible) non-type-level assoc consts are dyn incompatible, so the trait object type is ~already considered ill-formed. Therefore, in PR rust-lang#150843, I saved myself the extra effort, esp. since back then it was more annoying to check if the const item was declared type-level. <sub>(More concretely: In bodies, we check for all dyn compatibility violations when lowering the trait object type, so we will bail out early with an error; in contrast, item signatures / non-bodies get wfchecked (`WellFormed` obligation) after lowering which includes dyn compatiblity checking (`DynCompatible` obligation); however to reduce the amount of diags, during lowering if there are any unspecified assoc items, we'll check them for dyn compatibility and bail out early if any of them tests negative.)</sub> Now, we obviously don't wfcheck the defsite of (eager) type aliases which breaks the assumption that such trait object types get rejected. This led to the regression found in rust-lang#153731: The ill-formed trait object type doesn't get rejected (as is expected) but we now require the single (non-type-level) assoc const to be bound in the dyn-Trait which we didn't do before. The actual error talks about dyn incompatibility due to the aforementioned extra check that's usually there to contain the number of diags. Fixes [after beta backport] rust-lang#153731.
Remove redundant fields from `QueryStackFrame` - Follow-up to rust-lang#153867 (comment) --- Now that QueryStackFrame holds a TaggedQueryKey, it turns out that all of its other fields are redundant and can be removed: - An explicit dep-kind is redundant here. If we want to find the query name, or check for specific queries, we can inspect the `TaggedQueryKey` instead. - Similarly, in cases where the key is some kind of `DepId`, we can extract it directly from the `TaggedQueryKey`. r? nnethercote
…nstraint-suggestion, r=estebank Suppress self-referential associated type constraint suggestion Fixes rust-lang#112104 When comparing `Option<&I::Item>` against `Option<I::Item>`, the compiler decomposes the mismatch into `expected = &<I as Iterator>::Item` vs `found = <I as Iterator>::Item`. ARM 2 in `note_and_explain_type_err` matches because `found` is a projection, and would suggest `Item = &<I as Iterator>::Item` — constraining the associated type to something that contains itself. ARM 1 (`expected_projection`) already guards against this with `found.contains(expected)`. ARM 2 was missing the symmetric check. This adds `expected.contains(found)` to the match guard. Before: ```rust help: consider constraining the associated type `<I as Iterator>::Item` to `&<I as Iterator>::Item` | 1 | fn foo<I: Iterator<Item = &<I as Iterator>::Item>>(iter: &mut I) { | +++++++++++++++++++++++++++++++ ``` After: bogus suggestion is gone, and the existing `.as_ref()` suggestion from `hir_typeck` still fires correctly. r? @estebank
|
Rollup of everything. @bors r+ rollup=never p=5 |
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 6bdc342 (parent) -> b711f95 (this PR) Test differencesShow 7 test diffsStage 1
Stage 2
Additionally, 3 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 b711f95f86b6489b91fdc55c876ed5f95a8d4560 --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 (b711f95): comparison URL. Overall result: ✅ 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 -1.6%, secondary 1.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 1.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 481.948s -> 481.409s (-0.11%) |
Successful merges:
QueryStackFrame#153907 (Remove redundant fields fromQueryStackFrame)r? @ghost
Create a similar rollup