diff options
author | Martin Odersky <odersky@gmail.com> | 2010-04-23 12:31:33 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2010-04-23 12:31:33 +0000 |
commit | 618b55fa8e1185eec27b93b5451d0331901828a2 (patch) | |
tree | 2644aa55ea99ddea2bcc6702977f5de29c763a81 /src/library | |
parent | e4716c234d718379e5213abcc19b431a6d906b79 (diff) | |
download | scala-618b55fa8e1185eec27b93b5451d0331901828a2.tar.gz scala-618b55fa8e1185eec27b93b5451d0331901828a2.tar.bz2 scala-618b55fa8e1185eec27b93b5451d0331901828a2.zip |
Fixed implicits problem in specs; Manifest[Clas...
Fixed implicits problem in specs; Manifest[Class[_]] can now be
generated. review by dubochet.
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/reflect/Manifest.scala | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/library/scala/reflect/Manifest.scala b/src/library/scala/reflect/Manifest.scala index b7cb86e1bd..d718011ff9 100644 --- a/src/library/scala/reflect/Manifest.scala +++ b/src/library/scala/reflect/Manifest.scala @@ -245,16 +245,15 @@ object Manifest { override def toString = prefix.toString+"#"+name+argString } - /** Manifest for the abstract type `prefix # name'. `upperBound' is not - * strictly necessary as it could be obtained by reflection. It was - * added so that erasure can be calculated without reflection. - * todo: remove after next bootstrap + /** Manifest for the unknown type `_ >: L <: U' in an existential. */ - def abstractType[T](prefix: Manifest[_], name: String, upperbound: ClassManifest[_], args: Manifest[_]*): Manifest[T] = + def wildcardType[T](lowerBound: Manifest[_], upperBound: Manifest[_]): Manifest[T] = new (Manifest[T] @serializable) { - def erasure = upperbound.erasure - override val typeArguments = args.toList - override def toString = prefix.toString+"#"+name+argString + def erasure = upperBound.erasure + override def toString = + "_" + + (if (lowerBound eq Nothing) "" else " >: "+lowerBound) + + (if (upperBound eq Nothing) "" else " <: "+upperBound) } /** Manifest for the intersection type `parents_0 with ... with parents_n'. */ |