Attributes
- Companion
- object
- Graph
-
- Supertypes
- Known subtypes
-
trait AndOrTypeclass AndTypeclass OrTypeclass AnnotatedTypeclass AppliedTypeclass ByNameTypeclass ConstantTypeclass FlexibleTypetrait LambdaTypetrait MethodOrPolyclass MethodTypeclass PolyTypeclass TypeLambdaclass MatchCaseclass MatchTypetrait NamedTypeclass TermRefclass TypeRefclass NoPrefixclass ParamRefclass RecursiveThisclass RecursiveTypeclass Refinementclass SuperTypeclass ThisTypeclass TypeBoundsShow all
Members list
Value members
Concrete methods
Is this type a subtype of that type?
Is this type a subtype of that type?
Attributes
Is self
type the same as that
type? This is the case iff self <:< that
and that <:< self
.
Is self
type the same as that
type? This is the case iff self <:< that
and that <:< self
.
Attributes
The current type applied to given type arguments: this[targ]
The current type applied to given type arguments: this[targ]
Attributes
The current type applied to given type arguments: this[targ0, ..., targN]
The current type applied to given type arguments: this[targ0, ..., targN]
Attributes
Convert this TypeRepr
to an Type[?]
Convert this TypeRepr
to an Type[?]
Usage:
import scala.quoted.*
def f(using Quotes) = {
val q: Quotes = summon[Quotes]
import q.reflect.*
val typeRepr: TypeRepr = ???
typeRepr.asType match
case '[t] =>
'{ val x: t = ??? }
}
Attributes
The base classes of this type with the class itself as first element.
The base classes of this type with the class itself as first element.
Attributes
The least type instance of given class which is a super-type of this type. Example:
The least type instance of given class which is a super-type of this type. Example:
class D[T]
class C extends p.D[Int]
ThisType(C).baseType(D) = p.D[Int]
Attributes
Follow aliases, annotated types until type is no longer alias type, annotated type.
Follow aliases, annotated types until type is no longer alias type, annotated type.
Attributes
Follow non-opaque aliases, annotated types until type is no longer alias type, annotated type.
Follow non-opaque aliases, annotated types until type is no longer alias type, annotated type.
Attributes
Is this type an instance of a non-bottom subclass of the given class cls
?
Is this type an instance of a non-bottom subclass of the given class cls
?
Attributes
Is this type an context function type?
Is this type an context function type?
Attributes
- See also
-
isFunctionType
Is this type a dependent function type?
Is this type a dependent function type?
Attributes
- See also
-
isFunctionType
Is this type a function type with erased parameters?
Is this type a function type with erased parameters?
Attributes
- See also
-
isFunctionType
Is this type a function type?
Is this type a function type?
Attributes
- Returns
-
true if the dealiased type of
self
without refinement isFunctionN[T1, T2, ..., Tn]
- Note
-
The function
- returns true for
given Int => Int
anderased Int => Int
- returns false for
List[Int]
, despite thatList[Int] <:< Int => Int
.
- returns true for
Is this type a TupleN
type?
Is this type a TupleN
type?
Attributes
- Returns
-
true if the dealiased type of
self
isTupleN[T1, T2, ..., Tn]
The type of member
as seen from prefix self
.
The type of member
as seen from prefix self
.
Also see typeRef
and termRef
Attributes
The type <this . sym>, reduced if possible
The type <this . sym>, reduced if possible
Attributes
Shows the type as a String
Shows the type as a String
Attributes
A simplified version of this type which is equivalent wrt =:= to this type. Reduces typerefs, applied match types, and and or types.
A simplified version of this type which is equivalent wrt =:= to this type. Reduces typerefs, applied match types, and and or types.
Attributes
Substitute all types that refer in their symbol attribute to one of the symbols in from
by the corresponding types in to
.
Substitute all types that refer in their symbol attribute to one of the symbols in from
by the corresponding types in to
.
Attributes
The applied type arguments (empty if there is no such arguments)
The applied type arguments (empty if there is no such arguments)
Attributes
Widen from singleton type to its underlying non-singleton base type by applying one or more underlying
dereferences, Also go from => T to T. Identity for all other types. Example:
Widen from singleton type to its underlying non-singleton base type by applying one or more underlying
dereferences, Also go from => T to T. Identity for all other types. Example:
class Outer { class C ; val x: C } def o: Outer <o.x.type>.widen = o.C
Attributes
Widen from ByName type to its result type.
Widen from ByName type to its result type.
Attributes
Widen from TermRef to its underlying non-termref base type, while also skipping ByName types.
Widen from TermRef to its underlying non-termref base type, while also skipping ByName types.
Attributes
Inherited methods
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 typeAny
,x.equals(x)
should returntrue
. - It is symmetric: for any instances
x
andy
of typeAny
,x.equals(y)
should returntrue
if and only ify.equals(x)
returnstrue
. - It is transitive: for any instances
x
,y
, andz
of typeAny
ifx.equals(y)
returnstrue
andy.equals(z)
returnstrue
, thenx.equals(z)
should returntrue
.
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
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.