diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala | 3 |
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)) |