summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-09-21 09:37:38 +0000
committerMartin Odersky <odersky@gmail.com>2006-09-21 09:37:38 +0000
commit00ee529f423a64a7004a8790ab9fdc2a395e8bda (patch)
tree237b3d5b7cdebad61415c5a82911192cf33650ab /src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
parent0e61f9c37e37e8338178b144b9294cb085100289 (diff)
downloadscala-00ee529f423a64a7004a8790ab9fdc2a395e8bda.tar.gz
scala-00ee529f423a64a7004a8790ab9fdc2a395e8bda.tar.bz2
scala-00ee529f423a64a7004a8790ab9fdc2a395e8bda.zip
fixed bug746; removed some costly msgs in asserts
Diffstat (limited to 'src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala')
-rw-r--r--src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
index 6ba1524213..734b546a85 100644
--- a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
+++ b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
@@ -84,17 +84,15 @@ abstract class ExplicitOuter extends InfoTransform with TransMatcher with Patter
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(), restpe))
+ decls1 enter clazz.newOuterAccessor(clazz.pos).setInfo(MethodType(List(), restpe))
if (!clazz.isTrait) // 2
//todo: avoid outer field if superclass has same outer value?
decls1 enter (
clazz.newValue(clazz.pos, nme.getterToLocal(nme.OUTER))
- setFlag (PROTECTED | PARAMACCESSOR)
+ setFlag (SYNTHETIC | PROTECTED | PARAMACCESSOR)
setInfo clazz.outerClass.thisType)
}
- if (!parents.isEmpty) {
+ if (!clazz.isTrait && !parents.isEmpty) {
for (val mc <- clazz.mixinClasses) {
val mixinOuterAcc: Symbol = atPhase(phase.next)(outerAccessor(mc))
if (mixinOuterAcc != NoSymbol) {