diff options
author | Martin Odersky <odersky@gmail.com> | 2005-11-11 15:48:59 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2005-11-11 15:48:59 +0000 |
commit | 97e86af1a962520523abadfd515dec243aeef004 (patch) | |
tree | 7e51446bda3c1738809a600d125b32ed5af6b842 | |
parent | 47f1199b5c891754fca1c9b6f2450ba8a45c49b8 (diff) | |
download | scala-97e86af1a962520523abadfd515dec243aeef004.tar.gz scala-97e86af1a962520523abadfd515dec243aeef004.tar.bz2 scala-97e86af1a962520523abadfd515dec243aeef004.zip |
*** empty log message ***
-rwxr-xr-x | sources/scala/tools/nsc/transform/ExplicitOuter.scala | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sources/scala/tools/nsc/transform/ExplicitOuter.scala b/sources/scala/tools/nsc/transform/ExplicitOuter.scala index 5032fc889f..e68d68e77c 100755 --- a/sources/scala/tools/nsc/transform/ExplicitOuter.scala +++ b/sources/scala/tools/nsc/transform/ExplicitOuter.scala @@ -258,15 +258,15 @@ abstract class ExplicitOuter extends InfoTransform { else atPos(tree.pos)(outerPath(outerValue, sym)); // (5) case Apply(sel @ Select(qual, name), args) if ((name == nme.CONSTRUCTOR || name == nme.MIXIN_CONSTRUCTOR) - && !sel.symbol.owner.isStatic) => + && !sel.symbol.owner.isStatic) => val outerVal = atPos(tree.pos) { if (qual.isInstanceOf[This]) { assert(outerParam != NoSymbol); outerValue } // (8) - else if (qual.tpe.prefix == NoPrefix) - gen.This( - if (qual.isInstanceOf[Super]) currentOwner.enclClass.owner.enclClass - else currentOwner.enclClass)//??? - else gen.mkQualifier(qual.tpe.prefix); // (7) + else { + var pre = qual.tpe.prefix; + if (pre == NoPrefix) pre = sym.owner.owner.enclClass.thisType; + gen.mkQualifier(pre) + } } copy.Apply(tree, sel, args ::: List(outerVal)) case _ => |