Remove the witness type from coroutine *args* (without actually removing the type)#144458
Remove the witness type from coroutine *args* (without actually removing the type)#144458bors merged 3 commits intorust-lang:masterfrom
Conversation
|
Some changes occurred to the core trait solver cc @rust-lang/initiative-trait-system-refactor |
2bf9c66 to
7209b8e
Compare
This comment has been minimized.
This comment has been minimized.
7209b8e to
8756bdc
Compare
| if self.reveal_coroutine_witnesses { | ||
| queue_type(self, args.as_coroutine().witness()); | ||
| ty::Coroutine(def_id, args) => { | ||
| if self.exhaustive { |
There was a problem hiding this comment.
please add the FIXME to exhaustive again
|
r=me after nit |
8756bdc to
e976578
Compare
|
@bors r=lcnr rollup=never |
Remove the witness type from coroutine *args* (without actually removing the type) This does as much of #144157 as we can without having to break #143545 and/or introduce some better way of handling higher ranked assumptions. Namely, it: * Stalls coroutines based off of the *coroutine* type rather than the witness type. * Reworks the dtorck constraint hack to not rely on the witness type. * Removes the witness type from the args of the coroutine, eagerly creating the type for nested obligations when needed (auto/clone impls). I'll experiment with actually removing the witness type in a follow-up. r? lcnr
|
💥 Test timed out |
|
A job failed! Check out the build log: (web) (plain enhanced) (plain) Click to see the possible cause of the failure (guessed by this bot) |
|
@bors retry |
|
☀️ Test successful - checks-actions |
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 4b55fe1 (parent) -> 63f6845 (this PR) Test differencesShow 18 test diffs18 doctest diffs were found. These are ignored, as they are noisy. Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 63f6845e570305a92eaf855897768617366164d6 --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 (63f6845): 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 countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 2.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 2.8%, secondary 2.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.0%, secondary -0.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 467.125s -> 468.385s (0.27%) |
|
perf triage:
@rustbot label: +perf-regression-triaged |
Remove the witness type from coroutine *args* (without actually removing the type) This does as much of rust-lang#144157 as we can without having to break rust-lang#143545 and/or introduce some better way of handling higher ranked assumptions. Namely, it: * Stalls coroutines based off of the *coroutine* type rather than the witness type. * Reworks the dtorck constraint hack to not rely on the witness type. * Removes the witness type from the args of the coroutine, eagerly creating the type for nested obligations when needed (auto/clone impls). I'll experiment with actually removing the witness type in a follow-up. r? lcnr
This does as much of #144157 as we can without having to break #143545 and/or introduce some better way of handling higher ranked assumptions.
Namely, it:
I'll experiment with actually removing the witness type in a follow-up.
r? lcnr