summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2005-11-11 15:48:59 +0000
committerMartin Odersky <odersky@gmail.com>2005-11-11 15:48:59 +0000
commit97e86af1a962520523abadfd515dec243aeef004 (patch)
tree7e51446bda3c1738809a600d125b32ed5af6b842
parent47f1199b5c891754fca1c9b6f2450ba8a45c49b8 (diff)
downloadscala-97e86af1a962520523abadfd515dec243aeef004.tar.gz
scala-97e86af1a962520523abadfd515dec243aeef004.tar.bz2
scala-97e86af1a962520523abadfd515dec243aeef004.zip
*** empty log message ***
-rwxr-xr-xsources/scala/tools/nsc/transform/ExplicitOuter.scala12
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 _ =>