diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-11-03 11:55:51 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-11-22 20:10:20 +0100 |
commit | a273c3f33a46b31be629cdbb60f4736642a420be (patch) | |
tree | 90841193850fa83091846dcbaaab3156efa65265 /src/dotty | |
parent | edee88013c1f400e52b474bd2541625d13bb2b8b (diff) | |
download | dotty-a273c3f33a46b31be629cdbb60f4736642a420be.tar.gz dotty-a273c3f33a46b31be629cdbb60f4736642a420be.tar.bz2 dotty-a273c3f33a46b31be629cdbb60f4736642a420be.zip |
Fix ElimRepeated not transforming modifiers in tree.
Diffstat (limited to 'src/dotty')
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/UnPickler.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/ElimRepeated.scala | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/UnPickler.scala b/src/dotty/tools/dotc/core/pickling/UnPickler.scala index fd752b534..c503f447b 100644 --- a/src/dotty/tools/dotc/core/pickling/UnPickler.scala +++ b/src/dotty/tools/dotc/core/pickling/UnPickler.scala @@ -831,7 +831,7 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: } t.toList } - println(atp) + // println(atp) val typer = ctx.typer val proto = new FunProtoTyped(args, atp, typer) val alts = atp.member(nme.CONSTRUCTOR).alternatives.map(_.termRef) diff --git a/src/dotty/tools/dotc/transform/ElimRepeated.scala b/src/dotty/tools/dotc/transform/ElimRepeated.scala index ba2de659f..8bb2bdedf 100644 --- a/src/dotty/tools/dotc/transform/ElimRepeated.scala +++ b/src/dotty/tools/dotc/transform/ElimRepeated.scala @@ -94,10 +94,13 @@ class ElimRepeated extends MiniPhaseTransform with InfoTransformer { thisTransfo override def transformDefDef(tree: DefDef)(implicit ctx: Context, info: TransformerInfo): Tree = { assert(ctx.phase == thisTransformer) def overridesJava = tree.symbol.allOverriddenSymbols.exists(_ is JavaDefined) + val newAnnots = tree.mods.annotations.mapConserve(annotTransformer.transform) + val newTree = if (newAnnots eq tree.mods.annotations) tree + else cpy.DefDef(tree)(mods = Modifiers(tree.mods.flags, tree.mods.privateWithin, newAnnots)) if (tree.symbol.info.isVarArgsMethod && overridesJava) - addVarArgsBridge(tree)(ctx.withPhase(thisTransformer.next)) + addVarArgsBridge(newTree)(ctx.withPhase(thisTransformer.next)) else - tree + newTree } /** Add a Java varargs bridge |