scala.reflect.api.package.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spark-core Show documentation
Show all versions of spark-core Show documentation
Shaded version of Apache Spark 2.x.x for Presto
The newest version!
package scala
package reflect
import scala.reflect.api.{Universe => ApiUniverse}
/**
* EXPERIMENTAL
*
* The Scala Reflection API (located in scala-reflect.jar).
*
* In Scala 2.10.0, the Scala Reflection API and its implementation have an "experimental" status.
* This means that the API and the docs are not complete and can be changed in binary- and source-incompatible
* manner in 2.10.1. This also means that the implementation has some known issues.
*
* The following types are the backbone of the Scala Reflection API, and serve as a good starting point
* for information about Scala Reflection:
*
* - [[scala.reflect.api.Symbols]]
* - [[scala.reflect.api.Types]]
* - [[scala.reflect.api.Mirrors]]
* - [[scala.reflect.api.Universe]]
*
* For more information about Scala Reflection, see the
* [[http://docs.scala-lang.org/overviews/reflection/overview.html Reflection Guide]]
*
* @groupname ReflectionAPI Scala Reflection API
* @groupprio API 9
* @groupprio Extractors 10
* @groupprio Tags 11
* @groupdesc API The methods available for each reflection entity, without the implementation. Since the
* reflection entities are later overridden by runtime reflection and macros, their API
* counterparts guarantee a minimum set of methods that are implemented.
* @groupdesc Extractors Extractors provide the machinery necessary to allow pattern matching and construction of
* reflection entities that is similar to case classes, although the entities are only abstract
* types that are later overridden.
* @groupdesc Tags Implicit values that provide [[scala.reflect.ClassTag `ClassTags`]] for the reflection
* classes. These are abstract in the interface but are later filled in to provide ClassTags
* for the either the runtime reflection or macros entities, depending on the use.
*/
package object api {
// anchors for materialization macros emitted during tag materialization in Implicits.scala
// implementation is hardwired into `scala.reflect.reify.Taggers`
// using the mechanism implemented in `scala.tools.reflect.FastTrack`
// todo. once we have implicit macros for tag generation, we can remove these anchors
private[scala] def materializeWeakTypeTag[T](u: ApiUniverse): u.WeakTypeTag[T] = macro ???
private[scala] def materializeTypeTag[T](u: ApiUniverse): u.TypeTag[T] = macro ???
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy