-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add test for evaluate_obligation: Ok(EvaluatedToOkModuloRegions) ICE #91065
Conversation
(rust-highfive has picked a reviewer for you, use r? to override) |
@Aaron1011 was #85868 supposed to fix something that #85090 didn't? Did you have a test case (different from the one that got minimised here) that was still failing after #85090? |
According to @wesleywiser, #85090 did fix #85360 (I also see that in #85868 (comment)). I guess my thoughts are: if #85090 did completely fix the underlying incremental issue, then why did we need to land #85868? If it didn't, then the test added here isn't sufficient to ensure we don't regress. That's not to say that we shouldn't add this test - but it's unclear if there's an actual reproduction that motivated #85868, or a theoretical one. |
Right. @lqd and I wanted to understand why the minimized repro stopped reproducing prior to the intended fix. I ran a bisect and got these results: searched toolchains 71b8742 through b3d11f9 Regression in d34a3a4 searched nightlies: from nightly-2021-07-04 to nightly-2021-07-06 @lqd had already determined previously when trying to construct a regression test that the nightly where this stopped reproducing was 2021-07-05 which is why the search space was so small. Edit: Note, because the change we're looking for was "ICEing -> not ICEing", "regression" in the above report actually indicates the commit which fixed the reproducer. |
This seems fine to me, but I want to r? @jackh726 (or perhaps @Aaron1011) since I feel like you're better able to determine whether this is the right test. |
Could you add Can you also add |
Sure! I just pushed a commit that does that as a separate UI test. If there's a better way to combine the tests, feel free to let me know. |
r=me unless @jackh726 wants any changes. |
@Aaron1011 any thoughts here? Specifically, do you think there is a bug that isn't covered by this regression test? Regardless, I think we should land this test. @bors r+ rollup |
📌 Commit c078c5ac597dfa58c59690a4cad8397ca2df2545 has been approved by |
@bors r=Aaron1011,jackh726 just to register the dual review |
💡 This pull request was already approved, no need to approve it again.
|
📌 Commit c078c5ac597dfa58c59690a4cad8397ca2df2545 has been approved by |
PR 85090 causes us to always return To make the test more robust, we could land a follow-up PR asserting that some where clause actually evaluates to |
Okay, so sounds like this does not "close" #85360, at least in terms of a proper regression test for the (Should we reopen #85360, or open a new issue to properly track the lack of a regression test to ensure that the cache behaves correctly for |
@bors r- I think I should go ahead and do that as part of this PR. |
_t: T, | ||
} | ||
|
||
impl<T: 'static> Component for GenericComp<T> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can make the top-level evaluation produce EvaluatedToOkModuloRegions
by adding where for<'a> &'a bool: 'a
to this impl. However, this will not work until #91329 is merged
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now that that PR has been merged, it should be possible to adjust this impl to produce EvaluatedToOkModuloRegions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implemented. Thanks @Aaron1011!
Adds the minimial repro test case from rust-lang#85360. The fix for rust-lang#85360 was supposed to be rust-lang#85868 however the repro was resolved in the 2021-07-05 nightly while rust-lang#85360 didn't land until 2021-09-03. The reason for that is d34a3a4 **also** resolves that issue. To test if rust-lang#85868 actually fixes rust-lang#85360, I reverted d34a3a4 and found that rust-lang#85868 does indeed resolve rust-lang#85360. With that question resolved, add a test case to our incremental test suite for the original Ok(EvaluatedToOkModuloRegions) ICE. Thanks to @lqd for helping track this down!
As suggested via reviewer feedback.
Yes, that's correct. |
Amazing. Thank you both @wesleywiser @Aaron1011 @bors r+ |
📌 Commit 6fe13f6 has been approved by |
Add test for evaluate_obligation: Ok(EvaluatedToOkModuloRegions) ICE Adds the minimial repro test case from rust-lang#85360. The fix for rust-lang#85360 was supposed to be rust-lang#85868 however the repro was resolved in the 2021-07-05 nightly while rust-lang#85868 didn't land until 2021-09-03. The reason for that is d34a3a4 **also** resolves that issue. To test if rust-lang#85868 actually fixes rust-lang#85360, I reverted d34a3a4 and found that rust-lang#85868 does indeed resolve rust-lang#85360. With that question resolved, add a test case to our incremental test suite for the original Ok(EvaluatedToOkModuloRegions) ICE. Thanks to `@lqd` for helping track this down!
Add test for evaluate_obligation: Ok(EvaluatedToOkModuloRegions) ICE Adds the minimial repro test case from rust-lang#85360. The fix for rust-lang#85360 was supposed to be rust-lang#85868 however the repro was resolved in the 2021-07-05 nightly while rust-lang#85868 didn't land until 2021-09-03. The reason for that is d34a3a4 **also** resolves that issue. To test if rust-lang#85868 actually fixes rust-lang#85360, I reverted d34a3a4 and found that rust-lang#85868 does indeed resolve rust-lang#85360. With that question resolved, add a test case to our incremental test suite for the original Ok(EvaluatedToOkModuloRegions) ICE. Thanks to ``@lqd`` for helping track this down!
Add test for evaluate_obligation: Ok(EvaluatedToOkModuloRegions) ICE Adds the minimial repro test case from rust-lang#85360. The fix for rust-lang#85360 was supposed to be rust-lang#85868 however the repro was resolved in the 2021-07-05 nightly while rust-lang#85868 didn't land until 2021-09-03. The reason for that is d34a3a4 **also** resolves that issue. To test if rust-lang#85868 actually fixes rust-lang#85360, I reverted d34a3a4 and found that rust-lang#85868 does indeed resolve rust-lang#85360. With that question resolved, add a test case to our incremental test suite for the original Ok(EvaluatedToOkModuloRegions) ICE. Thanks to ```@lqd``` for helping track this down!
…askrgr Rollup of 10 pull requests Successful merges: - rust-lang#87614 (Recommend fix `count()` -> `len()` on slices) - rust-lang#91065 (Add test for evaluate_obligation: Ok(EvaluatedToOkModuloRegions) ICE) - rust-lang#91312 (Fix AnonConst ICE) - rust-lang#91341 (Add `array::IntoIter::{empty, from_raw_parts}`) - rust-lang#91493 (Remove a dead code path.) - rust-lang#91503 (Tweak "call this function" suggestion to have smaller span) - rust-lang#91547 (Suggest try_reserve in try_reserve_exact) - rust-lang#91562 (Pretty print async block without redundant space) - rust-lang#91620 (Update books) - rust-lang#91622 (:arrow_up: rust-analyzer) Failed merges: - rust-lang#91571 (Remove unneeded access to pretty printer's `s` field in favor of deref) r? `@ghost` `@rustbot` modify labels: rollup
Declining beta-backport: the test added by this PR does not pass when backported alongside #90423, and we believe that this is due to other PRs not being backported (which we don't want to backport at this time). |
Adds the minimial repro test case from #85360. The fix for #85360 was
supposed to be #85868 however the repro was resolved in the 2021-07-05
nightly while #85868 didn't land until 2021-09-03. The reason for that
is d34a3a4 also resolves that
issue.
To test if #85868 actually fixes #85360, I reverted
d34a3a4 and found that #85868 does
indeed resolve #85360.
With that question resolved, add a test case to our incremental test
suite for the original Ok(EvaluatedToOkModuloRegions) ICE.
Thanks to @lqd for helping track this down!