summaryrefslogtreecommitdiff
path: root/test/files/run/t9946c.scala
Commit message (Collapse)AuthorAgeFilesLines
* SI-9946 don't null field in lazy accessors that turn out to be liveJason Zaugg2016-10-071-0/+10
If a non-transient lazy val is the only user of a private field in a class, the field is nulled out at the end of the lazy initializer. This is tested in the existing test `run/lazy-leaks.scala`. The analysis of which fields could be nulled out was recently moved from `mixin` to the new `fields` phase. This introduced a regression as a reference from an inner- or companion-classes had not yet been processed by `explicitouter` to publicise private fields. This commit delays the analysis to mixin (after explicit outer has done its work.) Navigating from `foo$lzycompute()` to `foo()` to `foo` is a little dirty now. I'm not sure whether there is a more robust way to structure things.