diff options
author | Guillaume Martres <smarter@ubuntu.com> | 2016-12-04 22:23:02 +0100 |
---|---|---|
committer | Guillaume Martres <smarter@ubuntu.com> | 2017-01-28 19:12:18 +0100 |
commit | cb2c2a0ff1631df91f84a85b0db814b24a4d6d62 (patch) | |
tree | 53653e6b120d0dc82af7f374325e75369f1417e4 /compiler | |
parent | 8d603d815d6c7caee05cf34402273fd4108c4efb (diff) | |
download | dotty-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.scala | 6 |
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 _ => |