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
CFE sometimes pops flow analysis constructs out of order #43725
Comments
@johnniwinther FYI |
I think this can be solved by moving calls to Given that |
Note that due to #43725 we can't yet downcast to these subclasses in all cases; added a test case that would fail if we did. Change-Id: Idd498840484a6a4c60a0cf2f8e01092ba75e7d2e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/166722 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Paul Berry <paulberry@google.com>
… code. Due to #43725 these have to be updated in a single atomic CL. Bug: #40009 Change-Id: Ifbd5fdee6379b7cbee5ab135f72a013134b70aa1 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/166601 Reviewed-by: Johnni Winther <johnniwinther@google.com>
@johnniwinther as we discussed in our meeting today, I made an attempt along the lines of your suggestion. It didn't work out too well :( |
Thanks for trying. I'll take it from here. |
When analyzing the following code:
CFE makes the following calls to flow analysis (excluding calls to
isReachable
,isAssigned
, andisUnassigned
, which are not relevant to this bug):This is improperly nested. The call to
ifNullExpression_end
should occur after the two calls tonullAwareAccess_end
.Fortunately this is a benign bug, for now, because
ifNullExpression_end
andnullAwareAccess_end
have identical behavior. But it's technical debt, because it limits our ability to change the behavior of those two methods in the future.The text was updated successfully, but these errors were encountered: