ManifestFactory

@nowarn("cat=deprecation&origin=scala\\.reflect\\.ClassManifest(DeprecatedApis.*)?") object ManifestFactory

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

Unlike Manifest, 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. Why so complicated? Read up the comments for ClassManifestFactory.

class Object
trait Matchable
class Any

Value members

Concrete methods

def abstractType[T](prefix: Manifest[_], name: String, upperBound: Class[_], args: Manifest[_]*): Manifest[T]

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.

def arrayType[T](arg: Manifest[_]): Manifest[Array[T]]
def classType[T](clazz: Class[_]): Manifest[T]

Manifest for the class type clazz[args], where clazz is a top-level or static class.

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
Manifest.scala
def classType[T](clazz: Class[T], arg1: Manifest[_], args: Manifest[_]*): Manifest[T]

Manifest for the class type clazz, where clazz is a top-level or static class and args are its type arguments.

def classType[T](prefix: Manifest[_], clazz: Class[_], args: Manifest[_]*): Manifest[T]

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

def intersectionType[T](parents: Manifest[_]*): Manifest[T]

Manifest for the intersection type parents_0 with ... with parents_n.

def singleType[T <: AnyRef](value: AnyRef): Manifest[T]

Manifest for the singleton type value.type.

def wildcardType[T](lowerBound: Manifest[_], upperBound: Manifest[_]): Manifest[T]

Manifest for the unknown type _ >: L <: U in an existential.

Concrete fields

val Any: Manifest[Any]
val AnyRef: Manifest[AnyRef]
val AnyVal: Manifest[AnyVal]
val Boolean: BooleanManifest
val Byte: ByteManifest
val Char: CharManifest
val Double: DoubleManifest
val Float: FloatManifest
val Int: IntManifest
val Long: LongManifest
val Nothing: Manifest[Nothing]
val Null: Manifest[Null]
val Short: ShortManifest
val Unit: UnitManifest