From e006340aeb005de4904c51549b2bc06c4cb426d2 Mon Sep 17 00:00:00 2001 From: paltherr Date: Wed, 15 Oct 2003 13:05:18 +0000 Subject: - Fixed computation of enclosing class --- sources/scalac/transformer/LambdaLift.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'sources/scalac/transformer/LambdaLift.java') diff --git a/sources/scalac/transformer/LambdaLift.java b/sources/scalac/transformer/LambdaLift.java index 0aead5fd5c..65f72b8687 100644 --- a/sources/scalac/transformer/LambdaLift.java +++ b/sources/scalac/transformer/LambdaLift.java @@ -554,7 +554,12 @@ public class LambdaLift extends OwnerTransformer void liftSymbol(Symbol sym, Symbol[] oldtparams, Symbol[] newtparams, Symbol[] newparams) { - Symbol enclClass = sym.owner().enclClass(); + Symbol enclClass = sym.owner(); + while (!enclClass.isClassType()) { + enclClass = enclClass.isConstructor() && !enclClass.isPrimaryConstructor() + ? enclClass.constructorClass() + : enclClass.owner(); + } if (!sym.isPrimaryConstructor() && !sym.isModuleClass()) sym.setOwner(enclClass); if (!sym.isConstructor()) enclClass.members().enter(sym); if (sym.isMethod()) { -- cgit v1.2.3