aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Phases.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2016-02-20 15:31:11 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2016-02-20 17:42:17 +0100
commit910481a0f4fe671f3f4d8965eac61870596970e1 (patch)
treee7e43723a83b279b23737c2fe5139dd30c9e9e8a /src/dotty/tools/dotc/core/Phases.scala
parent6e535f7dc855d1587142f81bd9a53ea9ba3c7300 (diff)
downloaddotty-910481a0f4fe671f3f4d8965eac61870596970e1.tar.gz
dotty-910481a0f4fe671f3f4d8965eac61870596970e1.tar.bz2
dotty-910481a0f4fe671f3f4d8965eac61870596970e1.zip
Do not create companions that will be dropped later.
Fix blocker bug reported in #1114 I dislike this fix as now phase needs to know in advance if it will ever need a companion for the class. On the bright side, this change makes it clear which phases need companions
Diffstat (limited to 'src/dotty/tools/dotc/core/Phases.scala')
-rw-r--r--src/dotty/tools/dotc/core/Phases.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/Phases.scala b/src/dotty/tools/dotc/core/Phases.scala
index 83ac64d53..b60f437d5 100644
--- a/src/dotty/tools/dotc/core/Phases.scala
+++ b/src/dotty/tools/dotc/core/Phases.scala
@@ -4,6 +4,7 @@ package core
import Periods._
import Contexts._
import dotty.tools.backend.jvm.{LabelDefs, GenBCode}
+import dotty.tools.dotc.core.Symbols.ClassSymbol
import util.DotClass
import DenotTransformers._
import Denotations._
@@ -347,6 +348,10 @@ object Phases {
override def toString = phaseName
}
+ trait NeedsCompanions {
+ def isCompanionNeeded(cls: ClassSymbol)(implicit ctx: Context): Boolean
+ }
+
/** Replace all instances of `oldPhaseClass` in `current` phases
* by the result of `newPhases` applied to the old phase.
*/