diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2016-08-09 13:31:33 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2016-08-09 13:31:33 +0200 |
commit | 594e8dd17b1b3c7f26a7ee979ecdf43d77a51cb1 (patch) | |
tree | 8f34a5f1e9f0ce761af86821d9a6433a932d4fe5 /src/dotty/tools/dotc/Compiler.scala | |
parent | 62348dea92476f1bbb9d7f163f168be9c7e189b5 (diff) | |
download | dotty-594e8dd17b1b3c7f26a7ee979ecdf43d77a51cb1.tar.gz dotty-594e8dd17b1b3c7f26a7ee979ecdf43d77a51cb1.tar.bz2 dotty-594e8dd17b1b3c7f26a7ee979ecdf43d77a51cb1.zip |
Fix #1442: add new phase, SelectStatic
GenBCode has an implicit assumption that I wasn't aware of:
GetStatic should not be emitted against a valid selector.
If it is, GenBCode messes up the stack by not pop-ing the selector.
Surprisingly, this transformation is perfumed in nsc by flatten.
Diffstat (limited to 'src/dotty/tools/dotc/Compiler.scala')
-rw-r--r-- | src/dotty/tools/dotc/Compiler.scala | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/Compiler.scala b/src/dotty/tools/dotc/Compiler.scala index d447c3826..d1f126860 100644 --- a/src/dotty/tools/dotc/Compiler.scala +++ b/src/dotty/tools/dotc/Compiler.scala @@ -91,6 +91,7 @@ class Compiler { new Flatten, // Lift all inner classes to package scope new RestoreScopes), // Repair scopes rendered invalid by moving definitions in prior phases of the group List(new ExpandPrivate, // Widen private definitions accessed from nested classes + new SelectStatic, // get rid of selects that would be compiled into GetStatic new CollectEntryPoints, // Find classes with main methods new CollectSuperCalls, // Find classes that are called with super new MoveStatics, // Move static methods to companion classes |