traits/fulfill: allow stalled_on to track ty::Const::Infer(_) (unused yet).#70213
traits/fulfill: allow stalled_on to track ty::Const::Infer(_) (unused yet).#70213bors merged 3 commits intorust-lang:masterfrom
stalled_on to track ty::Const::Infer(_) (unused yet).#70213Conversation
|
@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::Infers viaTy::walkintostalled_on(collectingty::ConstKind::Infers 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