summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-09-11 23:05:20 +0000
committerMartin Odersky <odersky@gmail.com>2006-09-11 23:05:20 +0000
commit9abe4fe735de70857516db58fb384740c91982d4 (patch)
tree09fb81f211714a1e35ddb72da486b6fccff2bf5d /src
parent540f1b3922fb41a598247036e82ffb407761ce17 (diff)
downloadscala-9abe4fe735de70857516db58fb384740c91982d4.tar.gz
scala-9abe4fe735de70857516db58fb384740c91982d4.tar.bz2
scala-9abe4fe735de70857516db58fb384740c91982d4.zip
Another fix to explicitOuter
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
index 5d5f08922b..128ac3275b 100644
--- a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
+++ b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
@@ -74,9 +74,10 @@ abstract class ExplicitOuter extends InfoTransform with TransMatcher with Patter
val decls1 = newScope(decls.toList)
val outerAcc = clazz.newMethod(clazz.pos, nme.OUTER) // 3
outerAcc.expandName(clazz)
+ val restpe = if (clazz.isTrait) clazz.outerClass.tpe else clazz.outerClass.thisType
decls1 enter (
clazz.newOuterAccessor(clazz.pos)
- setInfo MethodType(List(), clazz.outerClass.thisType))
+ setInfo MethodType(List(), restpe))
if (!parents.isEmpty) {
for (val mc <- clazz.mixinClasses) {
val mixinOuterAcc: Symbol = atPhase(phase.next)(outerAccessor(mc))