Uh oh!
There was an error while loading. Please reload this page.
rustc: allow non-empty ParamEnv's in global trait select/eval caches. - #66821
Conversation
eddyb
commented
Nov 27, 2019
@bors try @rust-timer queue |
rust-timer
commented
Nov 27, 2019
Awaiting bors try build completion |
bors
commented
Nov 27, 2019
⌛ Trying commit d637c85 with merge 06db465248f3aa76f16924e778609dec610063a4... |
This comment has been minimized.
This comment has been minimized.
bors
commented
Nov 27, 2019
☀️ Try build successful - checks-azure |
rust-timer
commented
Nov 27, 2019
Queued 06db465248f3aa76f16924e778609dec610063a4 with parent 04e69e4, future comparison URL. |
rust-timer
commented
Nov 28, 2019
Finished benchmarking try commit 06db465248f3aa76f16924e778609dec610063a4, comparison URL. |
eddyb
commented
Nov 28, 2019
Looks like the wins aren't as significant as #66020 (comment), but they are comparable. |
[WIP] [DO NOT MERGE] combine #66020 and #66821. That is, the two fixes for #65510, and only for perf testing purposes. The fact that they both work to a comparable extent, while touching different parts of the trait system, made me curious if there would be any gains from having both. r? @nikomatsakis
eddyb
commented
Nov 28, 2019
Oh, also, the Then again, looking at #66020's own |
8f1af1d to
36b23edCompare36b23ed to
a266ea0Compareeddyb
commented
Dec 2, 2019
Take 2 (after getting tests to pass): |
rust-timer
commented
Dec 2, 2019
Awaiting bors try build completion |
bors
commented
Dec 2, 2019
rustc: allow non-empty ParamEnv's in global trait select/eval caches. *Based on #66963* This appears to alleviate the symptoms of #65510 locally (without fixing WF directly), and is potentially easier to validate as sound (since it's a more ad-hoc version of queries we already have). I'm opening this PR primarily to test the effects on perf. r? @nikomatsakis cc @rust-lang/wg-traits
bors
commented
Dec 2, 2019
☀️ Try build successful - checks-azure |
rust-timer
commented
Dec 2, 2019
Queued 1ff0441 with parent 2da942f, future comparison URL. |
rust-timer
commented
Dec 3, 2019
Finished benchmarking try commit 1ff0441, comparison URL. |
eddyb
commented
Dec 3, 2019
Looks comparable, so the changes I had to make didn't cause much of a difference. |
Dylan-DPC-zz
commented
Dec 10, 2019
Blocked on #66963 |
nikomatsakis
commented
Dec 10, 2019
bors
commented
Dec 10, 2019
📌 Commit a266ea0 has been approved by |
eddyb
commented
Dec 10, 2019
@bors rollup=never |
bors
commented
Dec 11, 2019
rustc: allow non-empty ParamEnv's in global trait select/eval caches. *Based on #66963* This appears to alleviate the symptoms of #65510 locally (without fixing WF directly), and is potentially easier to validate as sound (since it's a more ad-hoc version of queries we already have). I'm opening this PR primarily to test the effects on perf. r? @nikomatsakis cc @rust-lang/wg-traits
| LL | fn foo_desugared<T: TraitWithAssoc>(_: T) -> Foo<T::Assoc> { | ||
| | -- help: consider further restricting this bound: `T: TraitWithAssoc +` |
There was a problem hiding this comment.
This error looks pretty wrong though, doesn't it?
There was a problem hiding this comment.
Yeah, but it makes sense in the context.
It's the error you get if the other errors don't prevent the impl Trait from getting the incompatible concrete type, because of the type parameter that is now in the wrong ParamEnv, which doesn't have the original bound.
This is pre-existing, it was just hidden by the bug #66963 fixes.
bors
commented
Dec 11, 2019
☀️ Test successful - checks-azure |
Based on #66963
This appears to alleviate the symptoms of #65510 locally (without fixing WF directly), and is potentially easier to validate as sound (since it's a more ad-hoc version of queries we already have).
I'm opening this PR primarily to test the effects on perf.
r? @nikomatsakis cc @rust-lang/wg-traits