diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-04-23 17:57:35 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-04-30 14:26:05 +0200 |
commit | b50d209d52f066e5bcf415d9def6ea503b8aea5d (patch) | |
tree | 2e8723e0c743639223eac9b2c38e5f7e97731428 /src/dotty/tools/dotc/transform/Constructors.scala | |
parent | e1c482a98b5d07b227f6415aac9aaff0ab06e8ff (diff) | |
download | dotty-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.scala | 10 |
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 => |