TypeBounds

oxygen.quoted.TypeBounds
See theTypeBounds companion object
final class TypeBounds(val quotes: Quotes)(val unwrap: quotes.reflect.TypeBounds) extends TypeRepr

Attributes

Companion
object
Graph
Supertypes
trait TypeRepr
trait Model
class Object
trait Matchable
class Any

Members list

Type members

Types

override type This <: TypeBounds

Value members

Concrete methods

def hi: TypeRepr
def low: TypeRepr
override def unwrapWithin(using newQuotes: Quotes): newQuotes.reflect.TypeBounds

Attributes

Definition Classes

Inherited methods

final def <:<(that: TypeRepr): Boolean

Is this type a subtype of that type?

Is this type a subtype of that type?

Attributes

Inherited from:
TypeRepr
final def =:=(that: TypeRepr): Boolean

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

Inherited from:
TypeRepr
final def andChildren: Set[TypeRepr]

Attributes

Inherited from:
TypeRepr

Attributes

Inherited from:
TypeRepr
final def appliedTo(targ0: TypeRepr, targ1: TypeRepr, targN: TypeRepr*): TypeRepr

Attributes

Inherited from:
TypeRepr
final def appliedTo(targs: List[TypeRepr]): TypeRepr

The current type applied to given type arguments: this[targ0, ..., targN]

The current type applied to given type arguments: this[targ0, ..., targN]

Attributes

Inherited from:
TypeRepr
final def appliedTo(targ: TypeRepr): TypeRepr

The current type applied to given type arguments: this[targ]

The current type applied to given type arguments: this[targ]

Attributes

Inherited from:
TypeRepr
final def asType: Type[_ <: AnyKind]

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

Inherited from:
TypeRepr
final def asTypeOf[A]: Type[A]

Attributes

Inherited from:
TypeRepr
final def baseClasses: List[Symbol]

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

Inherited from:
TypeRepr
final def baseType(cls: Symbol): TypeRepr

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

Inherited from:
TypeRepr
final def classSymbol: Option[Symbol]

Attributes

Inherited from:
TypeRepr
final def dealias: TypeRepr

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

Inherited from:
TypeRepr

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

Inherited from:
TypeRepr
final def derivesFrom(cls: Symbol): Boolean

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

Inherited from:
TypeRepr
final 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
Model -> Any
Inherited from:
Model
final 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
Model -> Any
Inherited from:
Model
final def isContextFunctionType: Boolean

Is this type an context function type?

Is this type an context function type?

Attributes

See also

isFunctionType

Inherited from:
TypeRepr
final def isDependentFunctionType: Boolean

Is this type a dependent function type?

Is this type a dependent function type?

Attributes

See also

isFunctionType

Inherited from:
TypeRepr
final def isErasedFunctionType: Boolean

Is this type a function type with erased parameters?

Is this type a function type with erased parameters?

Attributes

See also

isFunctionType

Inherited from:
TypeRepr
final def isFunctionType: Boolean

Is this type a function type?

Is this type a function type?

Attributes

Returns

true if the dealiased type of self without refinement is FunctionN[T1, T2, ..., Tn]

Note

The function

  • returns true for given Int => Int and erased Int => Int
  • returns false for List[Int], despite that List[Int] <:< Int => Int.
Inherited from:
TypeRepr
final def isSingleton: Boolean

Attributes

Inherited from:
TypeRepr
final def isTupleN: Boolean

Is this type a TupleN type?

Is this type a TupleN type?

Attributes

Returns

true if the dealiased type of self is TupleN[T1, T2, ..., Tn]

Inherited from:
TypeRepr
final override def maybePos: Option[Position]

Attributes

Definition Classes
Inherited from:
TypeRepr
final def memberType(member: Symbol): TypeRepr

The type of member as seen from prefix self.

The type of member as seen from prefix self.

Also see typeRef and termRef

Attributes

Inherited from:
TypeRepr
final def orChildren: Set[TypeRepr]

Attributes

Inherited from:
TypeRepr
final def select(sym: Symbol): TypeRepr

The type <this . sym>, reduced if possible

The type <this . sym>, reduced if possible

Attributes

Inherited from:
TypeRepr
final def show(f: PrinterCompanion => Printer[TypeRepr]): String

Attributes

Inherited from:
TypeRepr
final def show(using printer: Printer[TypeRepr]): String

Shows the type as a String

Shows the type as a String

Attributes

Inherited from:
TypeRepr
final def showAnsiCode: String

Attributes

Inherited from:
TypeRepr
final def showCode: String

Attributes

Inherited from:
TypeRepr
final def showShortCode: String

Attributes

Inherited from:
TypeRepr
final def showStructure: String

Attributes

Inherited from:
TypeRepr
final def showWith(f: PrinterCompanion => Printer[TypeRepr]): String

Attributes

Inherited from:
TypeRepr
final def simplified: TypeRepr

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

Inherited from:
TypeRepr
final def substituteTypes(from: List[Symbol], to: List[TypeRepr]): TypeRepr

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

Inherited from:
TypeRepr
final def termSymbol: Symbol

Attributes

Inherited from:
TypeRepr
final override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
Model -> Any
Inherited from:
Model
final def typeArgs: List[TypeRepr]

The applied type arguments (empty if there is no such arguments)

The applied type arguments (empty if there is no such arguments)

Attributes

Inherited from:
TypeRepr

Attributes

Inherited from:
TypeRepr
final def typeSymbol: Symbol

Attributes

Inherited from:
TypeRepr
final def typeTree: TypeTree

Attributes

Inherited from:
TypeRepr
final def typeType: Option[TypeType]

Attributes

Inherited from:
TypeRepr
final def typeTypeCase: Option[Case]

Attributes

Inherited from:
TypeRepr
final def typeTypeCaseClass: Option[Class]

Attributes

Inherited from:
TypeRepr
final def typeTypeCaseObject: Option[Object]

Attributes

Inherited from:
TypeRepr
final def typeTypeSealed: Option[Sealed]

Attributes

Inherited from:
TypeRepr
final def widen: TypeRepr

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

Inherited from:
TypeRepr
final def widenByName: TypeRepr

Widen from ByName type to its result type.

Widen from ByName type to its result type.

Attributes

Inherited from:
TypeRepr

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 from:
TypeRepr

Concrete fields

val quotes: Quotes
val unwrap: quotes.reflect.TypeBounds

Givens

Inherited givens

given givenQuotes: quotes.type

Attributes

Inherited from:
TypeRepr