From b50d209d52f066e5bcf415d9def6ea503b8aea5d Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Thu, 23 Apr 2015 17:57:35 +0200 Subject: Make Constructors change owners. --- src/dotty/tools/dotc/transform/Constructors.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/dotty/tools/dotc/transform/Constructors.scala b/src/dotty/tools/dotc/transform/Constructors.scala index cd64497e9..6842e14d7 100644 --- a/src/dotty/tools/dotc/transform/Constructors.scala +++ b/src/dotty/tools/dotc/transform/Constructors.scala @@ -95,9 +95,9 @@ class Constructors extends MiniPhaseTransform with SymTransformer { thisTransfor if (noDirectRefsFrom(tree)) tree else super.transform(tree) } - def apply(tree: Tree, inSuperCall: Boolean = false)(implicit ctx: Context): Tree = { + def apply(tree: Tree, prevOwner: Symbol, inSuperCall: Boolean = false)(implicit ctx: Context): Tree = { this.excluded = if (inSuperCall) EmptyFlags else Mutable - transform(tree) + transform(tree).changeOwnerAfter(prevOwner, constr.symbol, thisTransform) } } @@ -153,19 +153,19 @@ class Constructors extends MiniPhaseTransform with SymTransformer { thisTransfor val sym = stat.symbol if (isRetained(sym)) { if (!stat.rhs.isEmpty && !isWildcardArg(stat.rhs)) - constrStats += Assign(ref(sym), intoConstr(stat.rhs)).withPos(stat.pos) + constrStats += Assign(ref(sym), intoConstr(stat.rhs, sym)).withPos(stat.pos) clsStats += cpy.ValDef(stat)(rhs = EmptyTree) } else if (!stat.rhs.isEmpty) { sym.copySymDenotation( initFlags = sym.flags &~ Private, owner = constr.symbol).installAfter(thisTransform) - constrStats += intoConstr(stat) + constrStats += intoConstr(stat, sym) } case _: DefTree => clsStats += stat case _ => - constrStats += intoConstr(stat) + constrStats += intoConstr(stat, tree.symbol) } splitStats(stats1) case Nil => -- cgit v1.2.3