aboutsummaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorGuillaume Martres <smarter@ubuntu.com>2016-12-04 22:23:02 +0100
committerGuillaume Martres <smarter@ubuntu.com>2017-01-28 19:12:18 +0100
commitcb2c2a0ff1631df91f84a85b0db814b24a4d6d62 (patch)
tree53653e6b120d0dc82af7f374325e75369f1417e4 /compiler
parent8d603d815d6c7caee05cf34402273fd4108c4efb (diff)
downloaddotty-cb2c2a0ff1631df91f84a85b0db814b24a4d6d62.tar.gz
dotty-cb2c2a0ff1631df91f84a85b0db814b24a4d6d62.tar.bz2
dotty-cb2c2a0ff1631df91f84a85b0db814b24a4d6d62.zip
Workaround #1770: Run changeOwner at group end in ElimByName
Using changeOwnerAfter would be more appropriate but currently fails with an assertion in LambdaLift
Diffstat (limited to 'compiler')
-rw-r--r--compiler/src/dotty/tools/dotc/transform/ElimByName.scala6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/src/dotty/tools/dotc/transform/ElimByName.scala b/compiler/src/dotty/tools/dotc/transform/ElimByName.scala
index 2814baf1e..0e187fc2e 100644
--- a/compiler/src/dotty/tools/dotc/transform/ElimByName.scala
+++ b/compiler/src/dotty/tools/dotc/transform/ElimByName.scala
@@ -81,7 +81,11 @@ class ElimByName extends MiniPhaseTransform with InfoTransformer { thisTransform
val inSuper = if (ctx.mode.is(Mode.InSuperCall)) InSuperCall else EmptyFlags
val meth = ctx.newSymbol(
ctx.owner, nme.ANON_FUN, Synthetic | Method | inSuper, MethodType(Nil, Nil, argType))
- Closure(meth, _ => arg.changeOwner(ctx.owner, meth))
+ Closure(meth, _ =>
+ atGroupEnd { implicit ctx: Context =>
+ arg.changeOwner(ctx.owner, meth)
+ }
+ )
}
ref(defn.dummyApply).appliedToType(argType).appliedTo(argFun)
case _ =>