summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-09-19 15:17:49 +0000
committerMartin Odersky <odersky@gmail.com>2006-09-19 15:17:49 +0000
commitcc43126a20affb6aab8b0647550d1a64d964e59f (patch)
tree662a52158d02ed069c0d9783c4bf1cedfb11d69b
parentb3d9e27b95bee280fa1b403a7fafb8da81ff4a2c (diff)
downloadscala-cc43126a20affb6aab8b0647550d1a64d964e59f.tar.gz
scala-cc43126a20affb6aab8b0647550d1a64d964e59f.tar.bz2
scala-cc43126a20affb6aab8b0647550d1a64d964e59f.zip
fixed problem in test4
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Symbols.scala5
-rw-r--r--src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala8
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
}
}
}