ClassManifestFactory

scala.reflect.ClassManifestFactory

ClassManifestFactory defines factory methods for manifests. It is intended for use by the compiler and should not be used in client code.

Unlike ClassManifest, this factory isn't annotated with a deprecation warning. This is done to prevent avalanches of deprecation warnings in the code that calls methods with manifests.

In a perfect world, we would just remove the @deprecated annotation from ClassManifest the object and then delete it in 2.11. After all, that object is explicitly marked as internal, so no one should use it. However a lot of existing libraries disregarded the Scaladoc that comes with ClassManifest, so we need to somehow nudge them into migrating prior to removing stuff out of the blue. Hence we've introduced this design decision as the lesser of two evils.

Attributes

Source
ClassManifestDeprecatedApis.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def abstractType[T](prefix: OptManifest[_], name: String, clazz: Class[_], args: OptManifest[_]*): ClassTag[T]

ClassManifest 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.

ClassManifest 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.

Type parameters

T

the type represented by the manifest

Value parameters

args

the manifests for the type arguments of the abstract type (note: currently unused in the implementation)

clazz

the runtime Class for the upper bound of the abstract type, used for erasure

name

the name of the abstract type

prefix

the manifest for the prefix type of the abstract type

Attributes

Source
ClassManifestDeprecatedApis.scala
def abstractType[T](prefix: OptManifest[_], name: String, upperbound: ClassTag[_], args: OptManifest[_]*): ClassTag[T]

ClassManifest 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

ClassManifest 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

Type parameters

T

the type represented by the manifest

Value parameters

args

the manifests for the type arguments of the abstract type (note: currently unused in the implementation)

name

the name of the abstract type

prefix

the manifest for the prefix type of the abstract type

upperbound

the ClassManifest for the upper bound, whose runtimeClass is used for erasure

Attributes

Source
ClassManifestDeprecatedApis.scala
def arrayType[T](arg: OptManifest[_]): ClassTag[Array[T]]
def classType[T](clazz: Class[_]): ClassTag[T]

ClassManifest for the class type clazz, where clazz is a top-level or static class.

ClassManifest for the class type clazz, where clazz is a top-level or static class.

Type parameters

T

the type represented by the manifest

Value parameters

clazz

the runtime Class object for the type T

Attributes

Note

This no-prefix, no-arguments case is separate because we it's called from ScalaRunTime.boxArray itself. If we pass varargs as arrays into this, we get an infinitely recursive call to boxArray. (Besides, having a separate case is more efficient)

Source
ClassManifestDeprecatedApis.scala
def classType[T](clazz: Class[_], arg1: OptManifest[_], args: OptManifest[_]*): ClassTag[T]

ClassManifest for the class type clazz[args], where clazz is a top-level or static class and args are its type arguments

ClassManifest for the class type clazz[args], where clazz is a top-level or static class and args are its type arguments

Type parameters

T

the type represented by the manifest

Value parameters

arg1

the manifest for the first type argument of clazz, ensuring at least one type argument is provided

args

the manifests for the remaining type arguments of clazz

clazz

the runtime Class object for the type T

Attributes

Source
ClassManifestDeprecatedApis.scala
def classType[T](prefix: OptManifest[_], clazz: Class[_], args: OptManifest[_]*): ClassTag[T]

ClassManifest for the class type clazz[args], where clazz is a class with non-package prefix type prefix and type arguments args.

ClassManifest for the class type clazz[args], where clazz is a class with non-package prefix type prefix and type arguments args.

Type parameters

T

the type represented by the manifest

Value parameters

args

the manifests for the type arguments of clazz

clazz

the runtime Class object for the type T

prefix

the manifest for the non-package prefix type of clazz

Attributes

Source
ClassManifestDeprecatedApis.scala
def fromClass[T](clazz: Class[T]): ClassTag[T]
def singleType[T <: AnyRef](value: AnyRef): Manifest[T]

Concrete fields

val Boolean: BooleanManifest
val Byte: ByteManifest
val Char: CharManifest
val Double: DoubleManifest
val Float: FloatManifest
val Int: IntManifest
val Long: LongManifest
val Short: ShortManifest
val Unit: UnitManifest