Name

dotty.tools.dotc.core.Names.Name
abstract class Name extends Designator, Showable

A name is either a term name or a type name. Term names can be simple or derived. A simple term name is essentially an interned string stored in a name table. A derived term name adds a tag, and possibly a number or a further simple name to some other name.

Attributes

Graph
Supertypes
trait Showable
class Designator
class Object
trait Matchable
class Any
Known subtypes
class TermName
class DerivedName
class SimpleName
class TypeName

Members list

Type members

Types

type ThisName <: Name

A type for names of the same kind as this name

A type for names of the same kind as this name

Attributes

Value members

Abstract methods

This name downcasted to a simple term name

This name downcasted to a simple term name

Attributes

This name downcasted to a term name

This name downcasted to a term name

Attributes

This name downcasted to a type name

This name downcasted to a type name

Attributes

def collect[T](f: PartialFunction[Name, T]): Option[T]

If partial function f is defined for some part of this name, apply it in a Some, otherwise None. Stops at derived names whose kind has definesNewName = true.

If partial function f is defined for some part of this name, apply it in a Some, otherwise None. Stops at derived names whose kind has definesNewName = true.

Attributes

A string showing the internal structure of this name. By contrast, toString shows the name after conversion to a simple name.

A string showing the internal structure of this name. By contrast, toString shows the name after conversion to a simple name.

Attributes

Replace operator expansions by corresponding operator symbols.

Replace operator expansions by corresponding operator symbols.

Attributes

def derived(info: NameInfo): ThisName

A derived name consisting of this name and the added info, unless it is already present in this name.

A derived name consisting of this name and the added info, unless it is already present in this name.

Attributes

Replace operator symbols by corresponding operator expansions

Replace operator symbols by corresponding operator expansions

Attributes

def exclude(kind: NameKind): ThisName

This name without any info of the given kind. Excepted, as always, is the underlying name part of a qualified name.

This name without any info of the given kind. Excepted, as always, is the underlying name part of a qualified name.

Attributes

The first part of this (possible qualified) name

The first part of this (possible qualified) name

Attributes

def is(kind: NameKind): Boolean

Does this name contain an info of the given kind? Excepted, as always, is the underlying name part of a qualified name.

Does this name contain an info of the given kind? Excepted, as always, is the underlying name part of a qualified name.

Attributes

Is this name empty?

Is this name empty?

Attributes

Is this name a term name?

Is this name a term name?

Attributes

Is this name a type name?

Is this name a type name?

Attributes

The last part of this (possible qualified) name

The last part of this (possible qualified) name

Attributes

def likeSpaced(name: Name): ThisName

A name in the same (term or type) namespace as this name and with same characters as given name.

A name in the same (term or type) namespace as this name and with same characters as given name.

Attributes

This name converted to a simple term name and in addition with all symbolic operator characters expanded.

This name converted to a simple term name and in addition with all symbolic operator characters expanded.

Attributes

Convert to string after mangling

Convert to string after mangling

Attributes

Apply f to last simple term name making up this name

Apply f to last simple term name making up this name

Attributes

Apply f to all simple term names making up this name

Apply f to all simple term names making up this name

Attributes

Apply rewrite rule given by f to some part of this name, skipping and rewrapping other decorators. Stops at DerivedNames with infos of kind QualifiedInfo. If f does not apply to any part, return name unchanged.

Apply rewrite rule given by f to some part of this name, skipping and rewrapping other decorators. Stops at DerivedNames with infos of kind QualifiedInfo. If f does not apply to any part, return name unchanged.

Attributes

This name converted to a simple term name

This name converted to a simple term name

Attributes

This name converted to a term name

This name converted to a term name

Attributes

This name converted to a type name

This name converted to a type name

Attributes

Concrete methods

def ++(other: Name): ThisName

Append other to the last part of this name

Append other to the last part of this name

Attributes

def ++(other: String): ThisName

A derived name consisting of this name and the info of kind

A derived name consisting of this name and the info of kind

Attributes

def endsWith(suffix: String): Boolean

Does (the last part of) this name end with str?

Does (the last part of) this name end with str?

Attributes

def endsWith(suffix: SimpleName): Boolean
override def equals(that: Any): Boolean

Compares the receiver object (this) with the argument object (that) for equivalence.

Compares the receiver object (this) with the argument object (that) for equivalence.

Any implementation of this method should be an equivalence relation:

  • It is reflexive: for any instance x of type Any, x.equals(x) should return true.
  • It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any instances x, y, and z of type Any if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is usually necessary to override hashCode to ensure that objects which are "equal" (o1.equals(o2) returns true) hash to the same scala.Int. (o1.hashCode.equals(o2.hashCode)).

Value parameters

that

the object to compare against this object for equality.

Attributes

Returns

true if the receiver object is equivalent to the argument; false otherwise.

Definition Classes
Any
override def hashCode: Int

Calculates a hash code value for the object.

Calculates a hash code value for the object.

The default hashing algorithm is platform dependent.

Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.

Attributes

Returns

the hash code value for this object.

Definition Classes
Any
def replace(from: Char, to: Char): ThisName

Replace all occurrences of from to to in this name

Replace all occurrences of from to to in this name

Attributes

Same as replace, but does not stop at DerivedNames with infos of kind QualifiedInfo.

Same as replace, but does not stop at DerivedNames with infos of kind QualifiedInfo.

Attributes

def startsWith(str: String, start: Int): Boolean

Does (the first part of) this name starting at index start starts with str?

Does (the first part of) this name starting at index start starts with str?

Attributes

def toText(printer: Printer): Text

Convert name to text via printer.

Convert name to text via printer.

Attributes

Inherited methods

def fallbackToText(printer: Printer): Text

A fallback text representation, if the pattern matching in Printers does not have a case for this showable element

A fallback text representation, if the pattern matching in Printers does not have a case for this showable element

Attributes

Inherited from:
Showable
def show(using Context): String

The string representation of this showable element.

The string representation of this showable element.

Attributes

Inherited from:
Showable
def showIndented(margin: Int)(using Context): String

The string representation with each line after the first one indented by the given given margin (in spaces).

The string representation with each line after the first one indented by the given given margin (in spaces).

Attributes

Inherited from:
Showable
def showSummary(depth: Int)(using Context): String

The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.

The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.

Attributes

Inherited from:
Showable