summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2010-05-19 16:06:00 +0000
committerMartin Odersky <odersky@gmail.com>2010-05-19 16:06:00 +0000
commit7df797939b9e84c720e6b517c774d380d66ae28d (patch)
tree0b31887eb63e452fe3fc0810be9720a2a23c5be8 /src
parentda86fbe4a8a8ed08afa321dd01c0cf5a6b57df2f (diff)
downloadscala-7df797939b9e84c720e6b517c774d380d66ae28d.tar.gz
scala-7df797939b9e84c720e6b517c774d380d66ae28d.tar.bz2
scala-7df797939b9e84c720e6b517c774d380d66ae28d.zip
tentative solution of typeParams problem discov...
tentative solution of typeParams problem discovered by Iulian.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Symbols.scala15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
index 5172c9026f..3157e5cc20 100644
--- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
@@ -927,7 +927,20 @@ trait Symbols extends reflect.generic.Symbols { self: SymbolTable =>
* type parameters later.
*/
def typeParams: List[Symbol] =
- if (isMonomorphicType) List() else { rawInfo.load(this); rawInfo.typeParams }
+ if (isMonomorphicType)
+ List()
+ else {
+ if (validTo == NoPeriod) {
+ val current = phase
+ try {
+ phase = phaseOf(infos.validFrom)
+ rawInfo.load(this)
+ } finally {
+ phase = current
+ }
+ }
+ rawInfo.typeParams
+ }
/** The value parameter sections of this symbol.
*/