-
Notifications
You must be signed in to change notification settings - Fork 13.4k
traits/fulfill: allow stalled_on
to track ty::Const::Infer(_)
(unused yet).
#70213
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
@bors try @rust-timer queue |
Awaiting bors try build completion |
⌛ Trying commit 78c178b with merge cd27e54b181fec28e8c3e2b457e51762e307281b... |
☀️ Try build successful - checks-azure |
Queued cd27e54b181fec28e8c3e2b457e51762e307281b with parent 5f13820, future comparison URL. |
Finished benchmarking try commit cd27e54b181fec28e8c3e2b457e51762e307281b, comparison URL. |
@nnethercote ^^ Can you help me make sense of this? The query timings say a different story (the "regressions" actually spend less time in |
Okay so I've compared "
That's over 40x smaller, and I suspect the 0.3% "slowdown" is just noise. While the |
The perf results look good:
Overall, looks like a slight performance improvement. |
@bors r+ |
📌 Commit 78c178b has been approved by |
…omatsakis traits/fulfill: allow `stalled_on` to track `ty::Const::Infer(_)` (unused yet). This PR addresses the representation side of rust-lang#70180, but only *actually collects* `ty::Infer`s via `Ty::walk` into `stalled_on` (collecting `ty::ConstKind::Infer`s requires rust-lang#70164). However, it should be enough to handle rust-lang#70107's needs (WF obligations are stalled only on the outermost type/const being an inference variable, no `walk`-ing is involved). This is my second attempt, see rust-lang#70181 for the previous one, which unacceptably regressed perf. r? @nikomatsakis cc @nnethercote
…omatsakis traits/fulfill: allow `stalled_on` to track `ty::Const::Infer(_)` (unused yet). This PR addresses the representation side of rust-lang#70180, but only *actually collects* `ty::Infer`s via `Ty::walk` into `stalled_on` (collecting `ty::ConstKind::Infer`s requires rust-lang#70164). However, it should be enough to handle rust-lang#70107's needs (WF obligations are stalled only on the outermost type/const being an inference variable, no `walk`-ing is involved). This is my second attempt, see rust-lang#70181 for the previous one, which unacceptably regressed perf. r? @nikomatsakis cc @nnethercote
Rollup of 8 pull requests Successful merges: - rust-lang#68884 (Make the `type_of` return a generic type for generators) - rust-lang#69788 (Fix sequence of Type and Trait in optin-builtin-traits in Unstable Book) - rust-lang#70074 (Expand: nix all fatal errors) - rust-lang#70077 (Store idents for `DefPathData` into crate metadata) - rust-lang#70213 (traits/fulfill: allow `stalled_on` to track `ty::Const::Infer(_)` (unused yet).) - rust-lang#70259 (Use Reveal::All in MIR optimizations) - rust-lang#70284 (correctly handle const params in type_of) - rust-lang#70289 (Refactor `codegen`) Failed merges: r? @ghost
add regression tests for stalled_on const vars closes rust-lang#70180 Afaict this has been fixed sometime after rust-lang#70213 `trait_ref_type_vars` correctly adds const infers and I did not find any remaining `FIXME`s which correspond to this issue. https://github.com/rust-lang/rust/blob/7c59a81a5fcbaaca311f744cd7c68d99bfbb05d3/src/librustc_trait_selection/traits/fulfill.rs#L555-L557 Added both examples from the issue as regression tests and renamed `trait_ref_type_vars` -> `trait_ref_infer_vars`. r? @eddyb
add regression tests for stalled_on const vars closes rust-lang#70180 Afaict this has been fixed sometime after rust-lang#70213 `trait_ref_type_vars` correctly adds const infers and I did not find any remaining `FIXME`s which correspond to this issue. https://github.com/rust-lang/rust/blob/7c59a81a5fcbaaca311f744cd7c68d99bfbb05d3/src/librustc_trait_selection/traits/fulfill.rs#L555-L557 Added both examples from the issue as regression tests and renamed `trait_ref_type_vars` -> `trait_ref_infer_vars`. r? @eddyb
This PR addresses the representation side of #70180, but only actually collects
ty::Infer
s viaTy::walk
intostalled_on
(collectingty::ConstKind::Infer
s requires #70164).However, it should be enough to handle #70107's needs (WF obligations are stalled only on the outermost type/const being an inference variable, no
walk
-ing is involved).This is my second attempt, see #70181 for the previous one, which unacceptably regressed perf.
r? @nikomatsakis cc @nnethercote