From ff782651ee5e5a3aa9a3d1b72b2b1fdaa26eafca Mon Sep 17 00:00:00 2001 From: liu fengyun Date: Mon, 10 Apr 2017 17:28:57 +0200 Subject: fix #2163: don't narrow liftedOwner if symbol is InSuperCall --- compiler/src/dotty/tools/dotc/transform/LambdaLift.scala | 1 + 1 file changed, 1 insertion(+) (limited to 'compiler') diff --git a/compiler/src/dotty/tools/dotc/transform/LambdaLift.scala b/compiler/src/dotty/tools/dotc/transform/LambdaLift.scala index 7578b57f1..3880b6efb 100644 --- a/compiler/src/dotty/tools/dotc/transform/LambdaLift.scala +++ b/compiler/src/dotty/tools/dotc/transform/LambdaLift.scala @@ -146,6 +146,7 @@ class LambdaLift extends MiniPhase with IdentityDenotTransformer { thisTransform def narrowLiftedOwner(sym: Symbol, owner: Symbol)(implicit ctx: Context) = if (sym.maybeOwner.isTerm && owner.isProperlyContainedIn(liftedOwner(sym)) && + !sym.is(InSuperCall) && owner != sym) { ctx.log(i"narrow lifted $sym to $owner") changedLiftedOwner = true -- cgit v1.2.3