-
-
Notifications
You must be signed in to change notification settings - Fork 415
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
Fix reachability analysis for intersection types #2106
Conversation
This change fixes a bug where methods on members of intersection types sometimes weren't being reached. Closes ponylang#2102.
This is only waiting on one of the OSX builds - all other Travis builds have passed. The remaining build seems to be Travis-stalled, so I'm going to go ahead and merge. Bummer about not having a minimal repro, but it's great that you found a fix so quickly. |
@Praetonus Minimal case: use "debug"
actor Main
var _p: (P | None) = None
var _env: Env
new create(env: Env) =>
_env = env
create_p()
run_p()
be create_p() =>
let v = V
_p = P(v)
be run_p() =>
try
(_p as P).run()
end
trait C
trait E
be fun_p() => None
actor P
var _r: R tag
new create(r: R tag) =>
_r = r
be run() =>
_r.fun_p()
type R is (C tag & E tag)
actor V is (C & E)
new create() =>
Debug.out("V created") Tested against commit |
Sounds like another release is coming |
@SeanTAllen Why? That commit is from right after 0.16.0. |
We already released 0.16.1 |
Yes. The minimal case is for @Praetonus since he wasn't able to create one when fixing the issue. I had assumed the desire for one was to be able to include it as part of the automated testing. |
O I thought this was a new bug. Nice. Sorry, I didn't understand what you were saying. |
This change fixes a bug where methods on members of intersection types sometimes weren't being reached.
Closes #2102.
I haven't been able to produce a minimal test case for the bug.