diff options
author | Martin Odersky <odersky@gmail.com> | 2006-09-19 15:17:49 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-09-19 15:17:49 +0000 |
commit | cc43126a20affb6aab8b0647550d1a64d964e59f (patch) | |
tree | 662a52158d02ed069c0d9783c4bf1cedfb11d69b | |
parent | b3d9e27b95bee280fa1b403a7fafb8da81ff4a2c (diff) | |
download | scala-cc43126a20affb6aab8b0647550d1a64d964e59f.tar.gz scala-cc43126a20affb6aab8b0647550d1a64d964e59f.tar.bz2 scala-cc43126a20affb6aab8b0647550d1a64d964e59f.zip |
fixed problem in test4
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Symbols.scala | 5 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala | 8 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala index 4ddb5689c3..3b7c2f6874 100644 --- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala +++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala @@ -479,7 +479,10 @@ trait Symbols requires SymbolTable { throw new Error("typeConstructor inapplicable for " + this) /** The type parameters of this symbol */ - def unsafeTypeParams: List[Symbol] = rawInfo.typeParams + def unsafeTypeParams: List[Symbol] = { + val limit = phaseId(validTo) + (if (limit < phase.id) infos.info else rawInfo).typeParams + } def typeParams: List[Symbol] = { rawInfo.load(this); rawInfo.typeParams diff --git a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala index 0caa0f6522..6ba1524213 100644 --- a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala +++ b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala @@ -99,10 +99,10 @@ abstract class ExplicitOuter extends InfoTransform with TransMatcher with Patter val mixinOuterAcc: Symbol = atPhase(phase.next)(outerAccessor(mc)) if (mixinOuterAcc != NoSymbol) { if (decls1 eq decls) decls1 = newScope(decls.toList) - decls1 enter ( - mixinOuterAcc.cloneSymbol(clazz) - .setInfo(clazz.thisType.memberType(mixinOuterAcc)) - .resetFlag(DEFERRED)) + val newAcc = mixinOuterAcc.cloneSymbol(clazz) + newAcc.resetFlag(DEFERRED) + newAcc.setInfo(clazz.thisType.memberType(mixinOuterAcc)) + decls1 enter newAcc } } } |