-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Rollup of 7 pull requests #141396
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 7 pull requests #141396
Conversation
Co-authored-by: Esteban Kuber <estebank@users.noreply.github.com>
Co-authored-by: Esteban Kuber <estebank@users.noreply.github.com>
`non_local_bounds` would only find non local bounds that strictly bound a given region, but it's possible that a local region is equated to 'static when showing a type referencing a locally bound lifetime, such as `dyn Any + 'a` in the tests added, is well-formed. In this case we should return 'static.
…e of TyCtxt They are not the same.
Name them more consistently, descriptively and appropriately. Move large error reporting methods into the dedicated error module to make the happy paths in HIR ty lowering more legible.
IMPORTANT: This leads to a tiny diagnostic regression that will be fixed in the next commit!
Most notably, this preserves the `(..)` of ambiguous RTN paths.
…tc_on_unimplemented
…mpiler-errors Add ignore value suggestion in closure body Fixes rust-lang#128561 r? `@estebank`
…ecks, r=lcnr Finalize repeat expr inference behaviour with inferred repeat counts I believe this should be the last change of how repeat exprs are handled before it's finished for `generic_arg_infer`. Assuming we don't wind up deciding to replace this all with a new predicate kind :) This PR has three actual changes: - Always defer the checks to end of typeck even when generic arg infer is not enabled (needs an FCP) - Properly handle element exprs that are constants when the repeat count is inferred - "Isolate" each repeat expr check so that inference constraints from `Copy` goals dont affect other repeat expr checks resulting in weird order-dependent inference The commit history and tests should be relatively helpful for understanding this PR's impl. r? compiler-errors
…ompiler-errors Handle regions equivalent to 'static in non_local_bounds `non_local_bounds` would only find non local bounds that strictly bound a given region, but it's possible that a local region is equated to 'static when showing a type referencing a locally bound lifetime, such as `dyn Any + 'a` in the tests added, is well-formed. In this case we should return 'static. closes rust-lang#122704 closes rust-lang#139004
…r=compiler-errors HIR ty lowering: Clean up & refactor the lowering of type-relative paths While rebasing rust-lang#126651 I realized that HIR ty lowering could benefit from some *spring cleaning* now that it's been extended to handle RTN and mGCA paths. More seriously, similar to my merged PR rust-lang#118668 which unified the handling of all *associated item constraints* (assoc ty, const (ACE) & fn (RTN)), this PR (commit rust-lang@695fcf5) partially[^1] deduplicates the resolution code for all *type-relative paths* (assoc ty, const (mGCA) & fn (RTN)). **Why**? DRY'ing that part of the code means PR rust-lang#126651 will automatically support RTN paths like `Ty::AssocTy::assoc_fn(..)` and it also implies shared diagnostic code and thus better diagnostics for RTN. --- The other commits represent cleanups, renamings, moves. More notably, I've renamed path lowering methods to be a lot more descriptive, so ones lowering `QPath(Resolved)` paths now have `_resolved_` in their name and ones lowering `QPath(TypeRelative)` paths now have `_type_relative_` in their name. This should make it stupidly obvious what their purpose is. --- Best reviewed commit by commit. The changes are close to trivial but the diff might make it look hairier. r? compiler-errors [^1]: Sadly, I couldn't unify as much compared to the other PR without introducing unnecessary `unreachable!()`s or rendering the code otherwise illegible with flags and micro helper traits.
…_as_ux_unnecessary_transmutes, r=compiler-errors use uX::from instead of _ as uX in non - const contexts changes `transmute(bool) -> integer` to `integer::from` as opposed to `bool as integer`. rust-lang#136083 (comment) `@rustbot` label L-unnecessary_transmutes
rustc_on_unimplemented cleanups Addresses some of the fixmes from rust-lang#139091 and rust-lang#140307. - switch from `_Self` to `Self` in library - properly validate that arguments in the `on` filter and the format strings are actually valid See rust-lang/rustc-dev-guide#2357 for the relevant documentation.
… r=oli-obk Querify `coroutine_hidden_types` This is necessary if we ever want to add implied bounds that would be used for higher-ranked coroutine auto trait goals (e.g. future implements `Send`). Modest perf regression in `hyper` full build which (afaict?) is the only async stress test, so definitely worth it IMO. r? oli-obk
@bors r+ rollup=never p=5 |
☀️ Test successful - checks-actions |
📌 Perf builds for each rolled up PR:
previous master: 2eef47813f In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
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 2eef478 (parent) -> 912981a (this PR) Test differencesShow 232 test diffsStage 1
Stage 2
Additionally, 196 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 912981a9eab199a6429d3c65a58f1b80487620ea --output-dir test-dashboard And 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 (912981a): comparison URL. Overall result: ❌✅ regressions and improvements - please read the text belowOur benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countThis is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.
Max RSS (memory usage)Results (primary 1.7%, secondary 0.2%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 776.347s -> 777.508s (0.15%) |
Successful merges:
coroutine_hidden_types
#141286 (Querifycoroutine_hidden_types
)Failed merges:
ParamEnv
and do trait solving inItemCtxt
s when lowering IATs #140247 (Don't buildParamEnv
and do trait solving inItemCtxt
s when lowering IATs)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup