Repository navigation
Conversation
|
@bors2 try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
GCI: Imply outlives-bounds on free (generic) const items
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (eb427c5): comparison URL. Overall result: ❌ regressions - please read the text belowBenchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @bors rollup=never Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. 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: 689.033s -> 689.561s (0.08%) |
|
(All of these failures are cycle errors that now occur when we try to recover from the user using |
|
@bors2 try parent=last @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
GCI: Imply outlives-bounds on free (generic) const items Part of #113521.
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (25444d3): comparison URL. Overall result: no relevant changes - no action neededBenchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf. @bors rollup=never Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (secondary 2.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
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: 689.033s -> 690.033s (0.15%) |
This comment was marked as resolved.
This comment was marked as resolved.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
This is now ready for review. However, it's still stacked on top of cleanup / refactoring PR #164012 which needs to be reviewed & merged beforehand. What has changed since the last review?
@rustbot review |
|
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
[STACKED] GCI: Imply outlives-bounds on free (generic) const items
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (ef27a0e): comparison URL. Overall result: ❌ regressions - no action neededBenchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up. @rustbot label: -S-waiting-on-perf -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 -3.9%, secondary 2.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -1.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 488.147s -> 489.834s (0.35%) |
This comment has been minimized.
This comment has been minimized.
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
In summary, rename various things & update a lot of comments.
1. Rename some types, fns that have "clause" in their name to contain
"outlives clause" instead. While we are in a module called `outlives`,
it's not immediately obvious & it certainly doesn't imply that all of
these things only represent / act on outlives-clauses.
Requested by Boxy.
2. Both `global_inferred_outlives` and `explicit_map` store a "global"
mapping from each crate-local item to a set of outlives-clauses
collected so far (one containing the inferred ones, the other the
explicit ones). So name both consistently: `global_inferred_clauses`
and `global_explicit_clauses`, respectively.
Similarly for their types which are now prefixed with `Global`.
3. Remove a bunch of really obvious & distracting comments.
4. Reduce rightward drift in the `ty::Dynamic` match arm by using an
if-let guard.
5. Deduplicate code shared between ADTs & CTAs in `inferred_outlives_of`
6. `bug!()` in a `GenericArgKind::Const(_)` branch which we know is
currently unreachable and which should explode if that were to change.
7. Rename `CrateClausesMap` to `CrateInferredOutlivesClausesMap`.
The type is public & lives in `rustc_middle` since
`inferred_outlives_crate` is a query. Considering that, its name is
way too general.
Moreover, remove all of its docs. This type can only be constructed
via query `inferred_outlives_crate` (well, and via the provider) which
has good docs already that also warn about the fact that query
`inferred_outlives_of` should always be used instead.
8. Remove comment "Typically there won't be many of these [explicit
outlives clauses], except in older code where they were mandatory" is
unnecessary and factually incorrect since there are various places
where we don't imply (early-bound) outlives-bounds.
9. Re. comment "Visit all the crates [...]" and "[...] we walk the crates
again [...]" is no longer correct: We only (re)visit the items in the
local crate; the inferred outlives clauses for cross-crate items have
already been computed and stored in the relevant crate metadata files.
10. Fix the example given in `check_explicit_clauses`'s docs, it has
several issues: Struct `Outer` gets used as a trait bound, it uses
`...: 'static` bounds and states they get processed but as a matter
of fact we don't process static bounds, we specifically only infer
clauses where the LHS is early-bound!
11. Various minor code tweaks.
View all comments
Caution
Stacked on top of PR #164012. The empty "branch separator" commit is the boundary.
Part of #113521.
(No LLM was or will be used by me during the entire creation process of this PR)