Add test for evaluate_obligation: Ok(EvaluatedToOkModuloRegions) ICE#91065
Add test for evaluate_obligation: Ok(EvaluatedToOkModuloRegions) ICE#91065bors merged 3 commits intorust-lang:masterfrom
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. |
There was a problem hiding this comment.
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.
Now that that PR has been merged, it should be possible to adjust this impl to produce EvaluatedToOkModuloRegions
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!