aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/Constructors.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-23 17:57:35 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-30 14:26:05 +0200
commitb50d209d52f066e5bcf415d9def6ea503b8aea5d (patch)
tree2e8723e0c743639223eac9b2c38e5f7e97731428 /src/dotty/tools/dotc/transform/Constructors.scala
parente1c482a98b5d07b227f6415aac9aaff0ab06e8ff (diff)
downloaddotty-b50d209d52f066e5bcf415d9def6ea503b8aea5d.tar.gz
dotty-b50d209d52f066e5bcf415d9def6ea503b8aea5d.tar.bz2
dotty-b50d209d52f066e5bcf415d9def6ea503b8aea5d.zip
Make Constructors change owners.
Diffstat (limited to 'src/dotty/tools/dotc/transform/Constructors.scala')
-rw-r--r--src/dotty/tools/dotc/transform/Constructors.scala10
1 files 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 =>