Trait

scala.reflect.api

Names

Related Doc: package api

Permalink

trait Names extends AnyRef

EXPERIMENTAL

This trait defines Names in Scala Reflection, and operations on them.

Names are simple wrappers for strings. Name has two subtypes TermName and TypeName which distinguish names of terms (like objects or members) and types. A term and a type of the same name can co-exist in an object.

To search for the map method (which is a term) declared in the List class, one can do:

scala> typeOf[List[_]].member(TermName("map"))
res0: reflect.runtime.universe.Symbol = method map

To search for a type member, one can follow the same procedure, using TypeName instead.

For more information about creating and using Names, see the Reflection Guide: Annotations, Names, Scopes, and More

Source
Names.scala
Linear Supertypes
Known Subclasses
Type Hierarchy
Content Hierarchy
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. Names
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Names

  1. abstract type Name >: Null <: NameApi

    Permalink

    The abstract type of names.

  2. abstract type TermName >: Null <: TermNameApi with Name

    Permalink

    The abstract type of names representing types.

  3. abstract type TypeName >: Null <: TypeNameApi with Name

    Permalink

    The abstract type of names representing terms.

  1. abstract def newTermName(s: String): TermName

    Permalink

    Create a new term name.

    Create a new term name.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.11.0) Use TermName instead

  2. abstract def newTypeName(s: String): TypeName

    Permalink

    Creates a new type name.

    Creates a new type name.

    Annotations
    @deprecated
    Deprecated

    (Since version 2.11.0) Use TypeName instead

  3. implicit def stringToTermName(s: String): TermName

    Permalink

    An implicit conversion from String to TermName.

    An implicit conversion from String to TermName. Enables an alternative notation "map": TermName as opposed to TermName("map").

    Annotations
    @deprecated
    Deprecated

    (Since version 2.11.0) Use explicit TermName(s) instead

  4. implicit def stringToTypeName(s: String): TypeName

    Permalink

    An implicit conversion from String to TypeName.

    An implicit conversion from String to TypeName. Enables an alternative notation "List": TypeName as opposed to TypeName("List").

    Annotations
    @deprecated
    Deprecated

    (Since version 2.11.0) Use explicit TypeName(s) instead

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.

  1. abstract class NameApi extends AnyRef

    Permalink

    The API of Name instances.

  2. trait TermNameApi extends AnyRef

    Permalink

    Has no special methods.

    Has no special methods. Is here to provides erased identity for TermName.

  3. trait TypeNameApi extends AnyRef

    Permalink

    Has no special methods.

    Has no special methods. Is here to provides erased identity for TypeName.

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.

  1. abstract class TermNameExtractor extends AnyRef

    Permalink

    An extractor class to create and pattern match with syntax TermName(s).

  2. abstract class TypeNameExtractor extends AnyRef

    Permalink

    An extractor class to create and pattern match with syntax TypeName(s).

  1. abstract val TermName: TermNameExtractor

    Permalink

    The constructor/extractor for TermName instances.

  2. abstract val TypeName: TypeNameExtractor

    Permalink

    The constructor/extractor for TypeName instances.