aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/core/Flags.scala1
-rw-r--r--src/dotty/tools/dotc/transform/DropEmptyCompanions.scala8
2 files changed, 6 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/Flags.scala b/src/dotty/tools/dotc/core/Flags.scala
index 8c9db3a5c..02b341649 100644
--- a/src/dotty/tools/dotc/core/Flags.scala
+++ b/src/dotty/tools/dotc/core/Flags.scala
@@ -606,6 +606,7 @@ object Flags {
final val AbstractFinal = allOf(Abstract, Final)
final val AbstractSealed = allOf(Abstract, Sealed)
final val SyntheticArtifact = allOf(Synthetic, Artifact)
+ final val SyntheticModule = allOf(Synthetic, Module)
final val SyntheticTermParam = allOf(Synthetic, TermParam)
final val SyntheticTypeParam = allOf(Synthetic, TypeParam)
final val SyntheticCase = allOf(Synthetic, Case)
diff --git a/src/dotty/tools/dotc/transform/DropEmptyCompanions.scala b/src/dotty/tools/dotc/transform/DropEmptyCompanions.scala
index 05296d93e..71aa92e79 100644
--- a/src/dotty/tools/dotc/transform/DropEmptyCompanions.scala
+++ b/src/dotty/tools/dotc/transform/DropEmptyCompanions.scala
@@ -26,10 +26,12 @@ class DropEmptyCompanions extends MiniPhase { thisTransform =>
/** Is `tree` an empty companion object? */
private def isEmptyCompanion(tree: Tree)(implicit ctx: Context) = tree match {
- case TypeDef(_, impl: Template) =>
- tree.symbol.is(Module) &&
+ case TypeDef(_, impl: Template) if
+ tree.symbol.is(SyntheticModule) &&
tree.symbol.companionClass.exists &&
- impl.body.forall(_.symbol.isPrimaryConstructor)
+ impl.body.forall(_.symbol.isPrimaryConstructor) =>
+ //println(i"removing ${tree.symbol}")
+ true
case _ =>
false
}