summaryrefslogtreecommitdiff
path: root/test/files/run/t8601-closure-elim.scala
Commit message (Collapse)AuthorAgeFilesLines
* SI-8601 Avoid over-eager optimization of LOAD_FIELDJason Zaugg2014-05-191-0/+26
It can NPE or trigger static class initilization, we can't elimiate it without changing semantics. To make sure we don't thwart closure elimination, I've allowed DCE to eliminate a non-static LOAD_FIELD of a member of a closure class. It would be more general to track nullity of the reciever (e.g, `this` or `new Foo` cannot be null), but that would require more infrastructure in this phase. I've added a test for closure inlining based on a a suggestion by @dragos. This actually passes if we remove the (LOAD_FIELD, DROP) peephole optimization for `closelim` altogether. But I chose to adapt that optimization (only allow it for non-static, closure fields), rather then remove it alogether, in the interests of treading lightly.