-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Good old unsoundness, CCE #4031
Comments
Without This looks related to #50 — in this example, it seems that what should be illegal is allowing dependent method (If one really wanted it could be legal to allow |
I believe the lazy val
should not be realizable. We miss a check here. |
Also some additions to realizability tests
Talked with Martin a lot about this and #4036. Turns out Dotty already switched to the refined logic —
There is indeed some logic for it. If method |
isDependent -> isResultDependent so that `isDependent` now is implemented as isResultDependent || isParamDependent We got bitten by this when trying to fix scala#4031.
Was only marked as “fixed” by mistake! |
Been puzzling again over this, and had to (re)discover that |
The first attempt required changing z1720.scala; but that became unnecessary after aligning isRealizable with isStable. A TermRef is stable if its underlying type is stable. Realizability should behave the same way.
The first attempt required changing z1720.scala; but that became unnecessary after aligning isRealizable with isStable. A TermRef is stable if its underlying type is stable. Realizability should behave the same way.
- Skolemize if not realizable, but use an approximating map that avoids using such skolems as paths (because that would be unsound).
- Skolemize if not realizable, but use an approximating map that avoids using such skolems as paths (because that would be unsound).
This was all a red herring I am afraid. You need null. The code as given produces an infinite loop (for So since you need |
Revisit once we have null-safety. Then it will make a good test case, with the change:
|
[Props to Adriaan for putting me on the right track here] |
http://io.livecode.ch/learn/namin/unsound/scala
lazy
above is not necessaryThe text was updated successfully, but these errors were encountered: