summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2010-03-11 14:21:21 +0000
committerMartin Odersky <odersky@gmail.com>2010-03-11 14:21:21 +0000
commit6aaf4a3d5e730b0ed12eed78ae0940693c37ed22 (patch)
tree01ae9cbc32875c33b7c51dc5a4a9a936d9c5216b /src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
parentd12ea6d31fa2624cb88f031d346ec13d74992302 (diff)
downloadscala-6aaf4a3d5e730b0ed12eed78ae0940693c37ed22.tar.gz
scala-6aaf4a3d5e730b0ed12eed78ae0940693c37ed22.tar.bz2
scala-6aaf4a3d5e730b0ed12eed78ae0940693c37ed22.zip
Closes #2940.
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala6
1 files changed, 4 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 6412efd8a2..efc899743d 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -589,6 +589,8 @@ abstract class ClassfileParser {
while (!isDelimiter(sig(index))) { index += 1 }
sig.subName(start, index)
}
+ def existentialType(tparams: List[Symbol], tp: Type): Type =
+ if (tparams.isEmpty) tp else ExistentialType(tparams, tp)
def sig2type(tparams: Map[Name,Symbol], skiptvs: Boolean): Type = {
val tag = sig(index); index += 1
tag match {
@@ -637,14 +639,14 @@ abstract class ClassfileParser {
}
accept('>')
assert(xs.length > 0)
- existentialAbstraction(existentials.toList, TypeRef(pre, classSym, xs.toList))
+ existentialType(existentials.toList, TypeRef(pre, classSym, xs.toList))
} else if (classSym.isMonomorphicType) {
tp
} else {
// raw type - existentially quantify all type parameters
val eparams = typeParamsToExistentials(classSym, classSym.unsafeTypeParams)
val t = TypeRef(pre, classSym, eparams.map(_.tpe))
- val res = existentialAbstraction(eparams, t)
+ val res = existentialType(eparams, t)
if (settings.debug.value && settings.verbose.value) println("raw type " + classSym + " -> " + res)
res
}