diff options
author | Martin Odersky <odersky@gmail.com> | 2008-05-21 15:35:34 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2008-05-21 15:35:34 +0000 |
commit | 47f35b58791cf2765f3643a6836ad9a6764ee41f (patch) | |
tree | 0e3b0f1a624ff273b85448d1c3e2b60c51b46157 | |
parent | 0d31ac9ab98af8bb5e894deeccbd7bf2a9789b12 (diff) | |
download | scala-47f35b58791cf2765f3643a6836ad9a6764ee41f.tar.gz scala-47f35b58791cf2765f3643a6836ad9a6764ee41f.tar.bz2 scala-47f35b58791cf2765f3643a6836ad9a6764ee41f.zip |
Fixed t0942
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala index 7235c3341f..04783f70e1 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala @@ -587,6 +587,9 @@ abstract class ClassfileParser { } accept('>') } + val ownTypeParams = newTParams.toList + if (!ownTypeParams.isEmpty) + sym.setInfo(new TypeParamsType(ownTypeParams)) val tpe = if ((sym eq null) || !sym.isClass) sig2type(tparams) @@ -598,9 +601,12 @@ abstract class ClassfileParser { } ClassInfoType(parents.toList, instanceDefs, sym) } - polyType(newTParams.toList, tpe) - } // polySigToType + polyType(ownTypeParams, tpe) + } // sigToType + class TypeParamsType(override val typeParams: List[Symbol]) extends LazyType { + override def complete(sym: Symbol) { throw new AssertionError("cyclic type dereferencing") } + } def parseAttributes(sym: Symbol, symtype: Type) { def convertTo(c: Constant, pt: Type): Constant = { |