Name

abstract class Name extends Designator with Showable

A name if 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.

trait Showable
class Object
trait Matchable
class Any

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

Value members

Abstract methods

This name downcasted to a simple term name

This name downcasted to a simple term name

This name downcasted to a term name

This name downcasted to a term name

This name downcasted to a type name

This name downcasted to a type name

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.

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.

Replace operator expansions by corresponding operator symbols.

Replace operator expansions by corresponding operator symbols.

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.

Replace operator symbols by corresponding operator expansions

Replace operator symbols by corresponding operator expansions

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.

The first part of this (possible qualified) name

The first part of this (possible qualified) name

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.

Is this name empty?

Is this name empty?

Is this name a term name?

Is this name a term name?

Is this name a type name?

Is this name a type name?

The last part of this (possible qualified) name

The last part of this (possible qualified) name

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.

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.

Convert to string after mangling

Convert to string after mangling

Apply f to last simple term name making up this name

Apply f to last simple term name making up this name

Apply f to all simple term names making up this name

Apply f to all simple term names making up this name

Apply rewrite rule given by f to some part of this name, skipping and rewrapping other decorators. Stops at derived names whose kind has definesNewName = true. 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 derived names whose kind has definesNewName = true. If f does not apply to any part, return name unchanged.

This name converted to a simple term name

This name converted to a simple term name

This name converted to a term name

This name converted to a term name

This name converted to a type name

This name converted to a type name

Concrete methods

def ++(other: Name): ThisName

Append other to the last part of this name

Append other to the last part of this name

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

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?

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.

Returns:

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

Definition Classes
Any
override def hashCode: Int

Calculate a hash code value for the object.

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

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

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?

def toText(printer: Printer): Text

Convert name to text via printer.

Convert name to text via printer.

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

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

The string representation of this showable element.

The string representation of this showable element.

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

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.

Inherited from:
Showable