From 61fe99b6ad0fcd0a8402435cf15c504ce4b9c4ea Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Wed, 20 Apr 2016 11:34:12 +0200 Subject: MoveStatics: fix two bugs. Unlink the static from the old scope, and don't drop top-level trees that are not TypeDefs. --- src/dotty/tools/dotc/transform/MoveStatics.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/transform/MoveStatics.scala') diff --git a/src/dotty/tools/dotc/transform/MoveStatics.scala b/src/dotty/tools/dotc/transform/MoveStatics.scala index c7cc947aa..23f19379b 100644 --- a/src/dotty/tools/dotc/transform/MoveStatics.scala +++ b/src/dotty/tools/dotc/transform/MoveStatics.scala @@ -21,6 +21,7 @@ class MoveStatics extends MiniPhaseTransform with SymTransformer { thisTransform def transformSym(sym: SymDenotation)(implicit ctx: Context): SymDenotation = { if (sym.hasAnnotation(defn.ScalaStaticAnnot) && sym.owner.is(Flags.Module)) { + sym.owner.asClass.delete(sym.symbol) sym.owner.companionClass.asClass.enter(sym.symbol) val flags = if (sym.is(Flags.Method)) sym.flags else sym.flags | Flags.Mutable sym.copySymDenotation(owner = sym.owner.companionClass, initFlags = flags) @@ -58,7 +59,7 @@ class MoveStatics extends MiniPhaseTransform with SymTransformer { thisTransform yield if (classes.tail.isEmpty) classes.head else move(classes.head, classes.tail.head) - Trees.flatten(newPairs.toList) + Trees.flatten(newPairs.toList ++ others) } else trees } } -- cgit v1.2.3