diff options
author | Martin Odersky <odersky@gmail.com> | 2010-05-19 16:06:00 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2010-05-19 16:06:00 +0000 |
commit | 7df797939b9e84c720e6b517c774d380d66ae28d (patch) | |
tree | 0b31887eb63e452fe3fc0810be9720a2a23c5be8 /src/compiler | |
parent | da86fbe4a8a8ed08afa321dd01c0cf5a6b57df2f (diff) | |
download | scala-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/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Symbols.scala | 15 |
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. */ |