ManifestFactory defines factory methods for manifests. It is intended for use by the compiler and should not be used in client code.
UnlikeManifest, 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 forClassManifestFactory.
Manifest for the abstract typeprefix # name.
Manifest for the abstract typeprefix # name.upperBound is not strictly necessary as it could be obtained by reflection. It was added so that erasure can be calculated without reflection.
Manifest for the class typeclazz[args], whereclazz is a top-level or static class.
Manifest for the class typeclazz[args], whereclazz is a top-level or static class.
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)
Manifest for the class typeclazz, whereclazz is a top-level or static class and args are its type arguments.
Manifest for the class typeclazz, whereclazz is a top-level or static class and args are its type arguments.
Manifest for the class typeclazz[args], whereclazz is a class with non-package prefix typeprefix and type argumentsargs.
Manifest for the class typeclazz[args], whereclazz is a class with non-package prefix typeprefix and type argumentsargs.
Manifest for the intersection typeparents_0 with ... with parents_n.
Manifest for the singleton typevalue.type.
Manifest for the unknown type_ >: L <: U in an existential.