Packages

o

scala.reflect

ClassManifestFactory

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

Annotations
@nowarn()
Source
ClassManifestDeprecatedApis.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ClassManifestFactory
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. val Any: Manifest[Any]
  2. val AnyVal: Manifest[AnyVal]
  3. val Boolean: BooleanManifest
  4. val Byte: ByteManifest
  5. val Char: CharManifest
  6. val Double: DoubleManifest
  7. val Float: FloatManifest
  8. val Int: IntManifest
  9. val Long: LongManifest
  10. val Nothing: Manifest[Nothing]
  11. val Null: Manifest[Null]
  12. val Object: Manifest[AnyRef]
  13. val Short: ShortManifest
  14. val Unit: UnitManifest
  15. def abstractType[T](prefix: OptManifest[_], name: String, upperbound: ClassManifest[_], args: OptManifest[_]*): ClassManifest[T]

    ClassManifest for the abstract type prefix # name.

    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

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

    ClassManifest for the abstract type prefix # name.

    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.

  17. def arrayType[T](arg: OptManifest[_]): ClassManifest[Array[T]]
  18. def classType[T](prefix: OptManifest[_], clazz: Class[_], args: OptManifest[_]*): ClassManifest[T]

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

  19. def classType[T](clazz: Class[_], arg1: OptManifest[_], args: OptManifest[_]*): ClassManifest[T]

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

  20. def classType[T](clazz: Class[_]): ClassManifest[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.

    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)

  21. def fromClass[T](clazz: Class[T]): ClassManifest[T]
  22. def singleType[T <: AnyRef](value: AnyRef): Manifest[T]