summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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))