-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Make LazyVals implement non-static modules. Move LV after erasure. #493
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
Conversation
@odersky can you take this over? |
There's indeed a problem relating Mixin and Memoize. Memoize does not generate the required fields |
@odersky test is failing as you have lost some of the changes while rewriting history. If you are done, I'll take this PR over. |
@DarkDimius OK, over to you, |
Current state: fails Ychecking after LambdaLift. |
Two last commits enable compiling down to bytecode for all tests, and compile Dotty itself. |
We get an OutOfMemory error on this one. What's our heap size here? |
val sym = ctx.newSymbol(owner, nme.WHILE_PREFIX, Flags.Label | Flags.Synthetic, | ||
MethodType(Nil, defn.UnitType), coord = cond.pos) | ||
|
||
val call = Apply(ref(sym), Nil) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use ref(sym).appliedToNone? (Not a strong opinion on this).
That's all I have. |
I'll perform renamings in upcoming commit. |
[@DarkDimius] I see no good reason for this, as it creates tight coupling between `ifs` in two methods. [@odersky] The reason is probably in the deleted comment: // allocate field early so that initializer has the right owner for subsequent phases in // the group. We now transform the rhs in subsequent phases with the getter as owner, where before it was the field. It is not clear to me whether this matters or not. [Update] We figured out the problem: It was a missing changeOwnerAfter in Constructor. Added to next commit.
Erasure finishes work done by Explicit outer, and registers a post condition that This(outer) is not allowed.
Was creating correct code, but was assuming that all objects with the same name share same bits. No need to do it.
Values are the ones that I got as maximum values for compiling dotty itself.
Out of memory on travis solved. |
Can you try again with enteredAfter instead of entered and remove the redundant Flags. prefixes? Otherwise LGTM. |
Does not fail tests anymore.
Make LazyVals implement non-static modules. Move LV after erasure.
Known to fail due data-race in pos/S5.