-
Notifications
You must be signed in to change notification settings - Fork 7
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
Issue for inconsistent result #126
Comments
Related to #103 |
Seems related to b8d3815. |
Hm, I just merged #124 locally and it passed. Investigating ... |
So |
After investigating, the typestate analysis is resulting in bottom states for the same stream for which it deemed to be ordered. So, we get two different possible states without any branching, which seems incorrect:
|
Does not seem related to #127. I also tried switching the live analysis SAFE option on with no change in the results. |
At this point, we should probably have a dive into the SAFE code to see why it is assigning both the bottom state and the ordered state to the stream instance in question. |
I'm also wondering if it has something to do with the change for #103. Are we now analyzing blocks that make no sense? It would be good to debug this to find out |
Doesn't seem to depend on blocks:
|
Here's the IR:
|
No clue. |
Maybe we should just fall back to ordered. |
It is almost like it's treating the return value from the client method as a new instance ... |
It has something to do with the terminal operation, i.e., where it is called. It seems to work fine when the terminal operation is called in the same method as the transitioning method. The terminal operation corresponds to the block where we extract the typestate information (i.e., it is the state of the object at that block). |
I am trying out different solvers but they are taking way too long. We may have to wait for the performance improvements in #103. |
If the test case is:
there are two elements in execution modes:
The text was updated successfully, but these errors were encountered: