aboutsummaryrefslogtreecommitdiff
path: root/src/dotty
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2014-11-03 11:55:51 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-11-22 20:10:20 +0100
commita273c3f33a46b31be629cdbb60f4736642a420be (patch)
tree90841193850fa83091846dcbaaab3156efa65265 /src/dotty
parentedee88013c1f400e52b474bd2541625d13bb2b8b (diff)
downloaddotty-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.scala2
-rw-r--r--src/dotty/tools/dotc/transform/ElimRepeated.scala7
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