Types

tastyquery.Types
object Types

Types in the Scala type system.

Every type from the Scala type system is represented in tasty-query as an instance of Type. That abstract class has a number of subtypes for all the possible "shapes" of types.

For example, a reference to the class scala.Int is represented as

TypeRef(PackageRef("scala"), TypeName("Int"))

Type applications of the form C[T1, ..., Tn] are represented as

AppliedType(typeForC, List(typeForT1, ..., typeForTn))

etc.

The type hierarchy is organized as follows:

TermType                         a type that can be the type of a term tree
|
+- PackageRef                   a reference to a package
|
+- TypeOrMethodic               a type or a methodic type (e.g., the declared type of a term symbol)
    |
    +- MethodicType             the type of a method with at least one parameter list
    |   +- MethodType           `(termParams): resultType`
    |   +- PolyType             `[TypeParams]: resultType`
    |
    +- Type
        |
        +- NamedType            designator type
        |   +- TypeRef          type selection of the form `prefix.T`
        |   +- TermRef          term selection of the form `prefix.t`
        |
        +- AppliedType          `C[T1, ..., Tn]`
        +- ByNameType            type of a by-name parameter `=> T`
        +- ThisType             `C.this`
        +- OrType               `A | B`
        +- AndType              `A & B`
        +- TypeLambda           `[T1, ..., Tn] => R`
        +- TypeParamRef         reference to a type parameter of an enclosing `TypeLambda` or `PolyType`
        +- TermParamRef         reference to a term parameter of an enclosing `MethodType`
        +- AnnotatedType        `T @annotation`
        +- ConstantType         literal singleton type, such as `42` or `"foo"`
        +- MatchType            `T match { case ... }`
        |
        +- RefinedType          refined type
        |   +- TypeRefinement   `P { type T >: L <: H }`
        |   +- TermRefinement   `P { val/def t: T }`
        |
        +- RecType              recursive type that introduces a recursive `this` binding
        +- RecThis              recursive reference to the `this` of a `RecType`
        +- SuperType            `super[mix]` (typically used as `prefix` of `NamedType`s)

In addition, Types contains additional categories of things used inside other types:

Prefix                     prefix of a designator type
+- NoPrefix               the empty prefix, for direct designators
+- NonEmptyPrefix
    +- PackageRef         a reference to a package, for designators of top-level symbols
    +- Type               a type, for named designators

TypeOrWildcard             either a type or a wildcard, used in the type arguments of `AppliedType`
+- Type
+- WildcardTypeArg        `? >: L <: H`

TermSelectionType          the reference type of an `Ident` or `Select`
+- PackageRef
+- TermRef

All of the above types inherit from TypeMappable, which represents things on which we apply type substitution.

Common shapes of types can be constructed with properties of Symbols.Symbol and with combinator methods on Type:

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Types.type

Members list

Type members

Classlikes

final case class AbstractTypeBounds(low: Type, high: Type) extends TypeBounds

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class TypeBounds
class TypeMappable
class Object
trait Matchable
class Any
Show all
final class AndType(val first: Type, val second: Type) extends GroundType

Attributes

Companion
object
Supertypes
class GroundType
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
object AndType

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
AndType.type
final class AnnotatedType(val typ: Type, val annotation: Annotation) extends TypeProxy

typ @ annot

typ @ annot

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
final class AnyKindType extends GroundType

Attributes

Supertypes
class GroundType
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
final class AppliedType(val tycon: Type, val args: List[TypeOrWildcard]) extends TypeProxy

A type application C[T_1, ..., T_n] Typebounds for wildcard application: C[_], C[?]

A type application C[T_1, ..., T_n] Typebounds for wildcard application: C[_], C[?]

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
sealed trait BoundType extends Type

A type that is bound to the identity of an enclosing TypeBinder.

A type that is bound to the identity of an enclosing TypeBinder.

Attributes

Supertypes
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
trait ParamRef
class TermParamRef
class TypeParamRef
class RecThis
final class ByNameType(val resultType: Type) extends TypeProxy

A by-name parameter type of the form => T.

A by-name parameter type of the form => T.

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
final class ConstantType(val value: Constant) extends TypeProxy, SingletonType

A constant type with single value.

A constant type with single value.

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
abstract class CustomTransientGroundType extends GroundType

Superclass for custom transient ground types used by custom algorithms.

Superclass for custom transient ground types used by custom algorithms.

When writing algorithms that manipulate Types, it is sometimes useful to temporarily store custom data in place of Types. This can be done by defining a subclass of CustomTransientGroundType. At the end of the day, all CustomTransientGroundTypes should have been replaced by proper Types.

The methods of tasty-query never expose instances of CustomTransientGroundType, but you may use it for your own purposes.

When permorming an exhaustive match on all possible Types, you should cover CustomTransientGroundType in a case that always throws (unless you are actually using it for some purposes):

val tpe: Type = ...
tpe match
 case tpe: TypeRef => ...
 ...
 case tpe: CustomTransientGroundType =>
   throw AssertionError(s"Unexpected custom transient ground type $tpe")
end match

Attributes

Supertypes
class GroundType
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all

Attributes

Companion
object
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object ErasedTypeRef

Attributes

Companion
enum
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed abstract class GroundType extends Type

Non-proxy types

Non-proxy types

Attributes

Supertypes
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
class AndType
class AnyKindType
class NothingType
class OrType
class TypeLambda
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
sealed trait LambdaType extends TypeOrMethodic, ParamRefBinder

Attributes

Supertypes
trait TypeBinder
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
sealed abstract class LambdaTypeCompanion[N <: Name, PInfo <: Type | TypeBounds, RT <: TypeOrMethodic, LT <: LambdaType]()

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object MethodType
class TypeLambdaTypeCompanion[RT, LT]
object PolyType
object TypeLambda
Show all
final class MatchType(val bound: Type, val scrutinee: Type, val cases: List[MatchTypeCase]) extends TypeProxy

selector match { cases }

selector match { cases }

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
final class MatchTypeCase(val paramNames: List[TypeName])(paramTypeBoundsExp: MatchTypeCase => List[TypeBounds], patternExp: MatchTypeCase => Type, resultTypeExp: MatchTypeCase => Type) extends TypeParamRefBinder

case pattern => result

case pattern => result

Attributes

Companion
object
Supertypes
trait TypeBinder
class Object
trait Matchable
class Any
Show all
object MatchTypeCase

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
final class MethodType extends MethodicType, TermLambdaType

Attributes

Companion
object
Supertypes
trait LambdaType
trait TypeBinder
class MethodicType
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
MethodType.type
sealed abstract class MethodTypeCompanion(val stringPrefix: String) extends LambdaTypeCompanion[UnsignedTermName, Type, TypeOrMethodic, MethodType]

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
sealed abstract class MethodicType extends TypeOrMethodic

The type of a def that has at least one (term or type) parameter list.

The type of a def that has at least one (term or type) parameter list.

Partitioned into MethodType and PolyType.

Attributes

Supertypes
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
class MethodType
class PolyType
sealed abstract class NamedType extends TypeProxy

Attributes

Companion
object
Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
class TermRef
class TypeRef
object NamedType

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
NamedType.type
object NoPrefix extends Prefix

Attributes

Supertypes
trait Prefix
class TypeMappable
class Object
trait Matchable
class Any
Self type
NoPrefix.type
sealed trait NonEmptyPrefix extends Prefix

Attributes

Supertypes
trait Prefix
class TypeMappable
class Object
trait Matchable
class Any
Known subtypes
class PackageRef
class TermRef
class Type
trait BoundType
trait ParamRef
class TermParamRef
class TypeParamRef
class RecThis
class GroundType
class AndType
class AnyKindType
class NothingType
class OrType
class TypeLambda
class TypeProxy
class AppliedType
class ByNameType
class ConstantType
class MatchType
class NamedType
class TypeRef
class RecType
class RefinedType
class RepeatedType
class SkolemType
class SuperType
class ThisType
Show all
final class NothingType extends GroundType

Attributes

Supertypes
class GroundType
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
final class OrType(val first: Type, val second: Type) extends GroundType

Attributes

Companion
object
Supertypes
class GroundType
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
object OrType

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
OrType.type

Attributes

Supertypes
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
sealed trait ParamRef extends BoundType

A TypeParamRef or TermParamRef.

A TypeParamRef or TermParamRef.

Attributes

Supertypes
trait BoundType
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
sealed trait ParamRefBinder extends TypeBinder

A type binder that binds ParamRefs.

A type binder that binds ParamRefs.

Attributes

Supertypes
trait TypeBinder
class Object
trait Matchable
class Any
Known subtypes
trait LambdaType
class MethodType
class PolyType
class TypeLambda
Show all

Attributes

Companion
object
Supertypes
trait LambdaType
trait TypeBinder
class MethodicType
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
Self type
PolyType.type
sealed trait Prefix extends TypeMappable

Attributes

Supertypes
class TypeMappable
class Object
trait Matchable
class Any
Known subtypes
object NoPrefix
class PackageRef
class TermRef
class Type
trait BoundType
trait ParamRef
class TermParamRef
class TypeParamRef
class RecThis
class GroundType
class AndType
class AnyKindType
class NothingType
class OrType
class TypeLambda
class TypeProxy
class AppliedType
class ByNameType
class ConstantType
class MatchType
class NamedType
class TypeRef
class RecType
class RefinedType
class RepeatedType
class SkolemType
class SuperType
class ThisType
Show all
final class RecThis(val binder: RecType) extends BoundType, SingletonType

Attributes

Supertypes
trait BoundType
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
final class RecType extends RefinedOrRecType, TypeBinder

Attributes

Companion
object
Supertypes
trait TypeBinder
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
object RecType

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
RecType.type
sealed abstract class RefinedOrRecType extends TypeProxy

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
sealed abstract class RefinedType extends RefinedOrRecType

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
final class RepeatedType(val elemType: Type) extends TypeProxy

The type of a repeated parameter of the form T*.

The type of a repeated parameter of the form T*.

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
sealed trait SingletonType extends TypeProxy

A marker trait for types that are guaranteed to contain only a single non-null value (they might contain null in addition).

A marker trait for types that are guaranteed to contain only a single non-null value (they might contain null in addition).

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
class ConstantType
class RecThis
class SkolemType
class SuperType
class TermParamRef
class TermRef
class ThisType
Show all
final class SkolemType(val tpe: Type) extends SingletonType

A skolem type reference with underlying type tpe.

A skolem type reference with underlying type tpe.

For tasty-query, a skolem type is a singleton type of some unknown value of type tpe.

Skolem types do not appear as the types of trees or symbols, but they may be used internally, notably for subtyping and member lookup purposes.

Note that care is needed when creating them, since not all types need to be inhabited.

A skolem is equal to itself and no other type.

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
final class SuperType(val thistpe: ThisType, val explicitSupertpe: Option[Type]) extends TypeProxy, SingletonType

The type of a super reference cls.super where thistpe is cls.this and supertpe is the type of the value referenced by super.

The type of a super reference cls.super where thistpe is cls.this and supertpe is the type of the value referenced by super.

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
sealed trait TermLambdaType extends LambdaType

Attributes

Supertypes
trait LambdaType
trait TypeBinder
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
class MethodType
final class TermParamRef(val binder: TermLambdaType, val paramNum: Int) extends ParamRef, SingletonType

Attributes

Supertypes
trait ParamRef
trait BoundType
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all

The singleton type for path prefix#myDesignator.

The singleton type for path prefix#myDesignator.

Attributes

Companion
object
Supertypes
class NamedType
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
object TermRef

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
TermRef.type
sealed trait TermReferenceType extends TermType, NonEmptyPrefix

The type of term reference, i.e., of an Ident or Select.

The type of term reference, i.e., of an Ident or Select.

It is either a TermRef or a PackageRef.

Attributes

Supertypes
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
class PackageRef
class TermRef
final class TermRefinement(val parent: Type, val isStable: Boolean, val refinedName: UnsignedTermName, val refinedType: TypeOrMethodic) extends RefinedType

A term refinement parent { val/def refinedName: refinedType }.

A term refinement parent { val/def refinedName: refinedType }.

Value parameters

parent

The type being refined

refinedName

The name of the refined term member

refinedType

The refined type for the given term member

Attributes

Supertypes
class RefinedType
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
sealed abstract class TermType extends TypeMappable

A marker trait for types that can be the type of a Trees.TermTree.

A marker trait for types that can be the type of a Trees.TermTree.

Partitioned into TypeOrMethodic and PackageRef.

Attributes

Supertypes
class TypeMappable
class Object
trait Matchable
class Any
Known subtypes
class PackageRef
class TermRef
trait LambdaType
class MethodType
class PolyType
class TypeLambda
class MethodicType
class Type
trait BoundType
trait ParamRef
class TermParamRef
class TypeParamRef
class RecThis
class GroundType
class AndType
class AnyKindType
class NothingType
class OrType
class TypeProxy
class AppliedType
class ByNameType
class ConstantType
class MatchType
class NamedType
class TypeRef
class RecType
class RefinedType
class RepeatedType
class SkolemType
class SuperType
class ThisType
Show all
final class ThisType(val tref: TypeRef) extends SingletonType

Attributes

Supertypes
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
sealed abstract class Type extends TypeOrMethodic, NonEmptyPrefix, TypeOrWildcard

A type in the Scala type system.

A type in the Scala type system.

Partitioned into GroundType and TypeProxy.

Attributes

Supertypes
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
trait BoundType
trait ParamRef
class TermParamRef
class TypeParamRef
class RecThis
class GroundType
class AndType
class AnyKindType
class NothingType
class OrType
class TypeLambda
class TypeProxy
class AppliedType
class ByNameType
class ConstantType
class MatchType
class NamedType
class TermRef
class TypeRef
class RecType
class RefinedType
class RepeatedType
class SkolemType
class SuperType
class ThisType
Show all
final case class TypeAlias(alias: Type) extends TypeBounds

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class TypeBounds
class TypeMappable
class Object
trait Matchable
class Any
Show all
sealed trait TypeBinder

Something that binds inner BoundTypes to its identity.

Something that binds inner BoundTypes to its identity.

Unlike other Types, the reference identity of a TypeBinder is relevant.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait LambdaType
class MethodType
class PolyType
class TypeLambda
class RecType
Show all
sealed abstract class TypeBounds(val low: Type, val high: Type) extends TypeMappable

Attributes

Supertypes
class TypeMappable
class Object
trait Matchable
class Any
Known subtypes

A type parameter of a type constructor.

A type parameter of a type constructor.

Type parameters of polymorphic class types are Symbols.ClassTypeParamSymbols. For other type constructors, they are instances of an unspecified subclass.

See Type.typeParams.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
final class TypeLambda(val paramNames: List[TypeName])(paramTypeBoundsExp: TypeLambda => List[TypeBounds], resultTypeExp: TypeLambda => Type) extends GroundType, TypeLambdaType

Attributes

Companion
object
Supertypes
trait LambdaType
trait TypeBinder
class GroundType
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
TypeLambda.type

Attributes

Supertypes
trait LambdaType
trait TypeBinder
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
class PolyType
class TypeLambda
sealed abstract class TypeLambdaTypeCompanion[RT <: TypeOrMethodic, LT <: TypeLambdaType] extends LambdaTypeCompanion[TypeName, TypeBounds, RT, LT]

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object PolyType
object TypeLambda
sealed abstract class TypeMappable

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
sealed abstract class TypeOrMethodic extends TermType

A type or a methodic type.

A type or a methodic type.

Partitioned into Type and MethodicType.

Attributes

Supertypes
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Known subtypes
trait LambdaType
class MethodType
class PolyType
class TypeLambda
class MethodicType
class Type
trait BoundType
trait ParamRef
class TermParamRef
class TypeParamRef
class RecThis
class GroundType
class AndType
class AnyKindType
class NothingType
class OrType
class TypeProxy
class AppliedType
class ByNameType
class ConstantType
class MatchType
class NamedType
class TermRef
class TypeRef
class RecType
class RefinedType
class RepeatedType
class SkolemType
class SuperType
class ThisType
Show all
sealed trait TypeOrWildcard extends TypeMappable

A type or a wildcard, as used in the type parameters of an AppliedType.

A type or a wildcard, as used in the type parameters of an AppliedType.

Partitioned into Type and WildcardTypeArg.

Attributes

Supertypes
class TypeMappable
class Object
trait Matchable
class Any
Known subtypes
class Type
trait BoundType
trait ParamRef
class TermParamRef
class TypeParamRef
class RecThis
class GroundType
class AndType
class AnyKindType
class NothingType
class OrType
class TypeLambda
class TypeProxy
class AppliedType
class ByNameType
class ConstantType
class MatchType
class NamedType
class TermRef
class TypeRef
class RecType
class RefinedType
class RepeatedType
class SkolemType
class SuperType
class ThisType
Show all
final class TypeParamRef(val binder: TypeParamRefBinder, val paramNum: Int) extends TypeProxy, ParamRef

Attributes

Supertypes
trait ParamRef
trait BoundType
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
sealed trait TypeParamRefBinder extends ParamRefBinder

A type binder that binds TypeParamRefs.

A type binder that binds TypeParamRefs.

Attributes

Supertypes
trait TypeBinder
class Object
trait Matchable
class Any
Known subtypes
sealed abstract class TypeProxy extends Type

Type proxies. Each implementation is expected to redefine the underlying method.

Type proxies. Each implementation is expected to redefine the underlying method.

Attributes

Supertypes
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
Known subtypes
class AppliedType
class ByNameType
class ConstantType
class MatchType
class NamedType
class TermRef
class TypeRef
class RecType
class RefinedType
class RepeatedType
class RecThis
class SkolemType
class SuperType
class TermParamRef
class ThisType
class TypeParamRef
Show all
final class TypeRef extends NamedType

Attributes

Companion
object
Supertypes
class NamedType
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
object TypeRef

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
TypeRef.type
final class TypeRefinement(val parent: Type, val refinedName: TypeName, val refinedBounds: TypeBounds) extends RefinedType

A type refinement parent { type refinedName <:> refinedBounds }.

A type refinement parent { type refinedName <:> refinedBounds }.

Value parameters

parent

The type being refined

refinedBounds

The refined bounds for the given type member

refinedName

The name of the refined type member

Attributes

Supertypes
class RefinedType
class TypeProxy
class Type
trait Prefix
class TermType
class TypeMappable
class Object
trait Matchable
class Any
Show all
final class WildcardTypeArg(val bounds: TypeBounds) extends TypeMappable, TypeOrWildcard

Attributes

Companion
object
Supertypes
class TypeMappable
class Object
trait Matchable
class Any

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type