Dotty Documentation

0.15.0-bin-SNAPSHOT

abstract case class RefinedType
extends RefinedOrRecType with Product with Serializable

A refined type parent { refinement }

[-] Constructors

RefinedType ( parent: Type , refinedName: Name , refinedInfo: Type )

[-] Members

[+] val parent : Type
[+] val refinedInfo : Type
[+] val refinedName : Name
[+] private def badInst : Nothing
[+] def checkInst ( implicit ctx: Context ) : RefinedType
[+] override def computeHash ( bs: Binders ) : Int

Compute hashcode relative to enclosing binders bs

[+] def derivedRefinedType ( parent: Type , refinedName: Name , refinedInfo: Type ) ( implicit ctx: Context ) : Type
[+] override def eql ( that: Type ) : Boolean

Equality used for hash-consing; uses eq on all recursive invocations, except where a BindingType is involved. The latter demand a deep isomorphism check.

[+] override def iso ( that: Any , bs: BinderPairs ) : Boolean

Is this isomorphic to that, assuming pairs of matching binders bs? It is assumed that this.ne(that).

[+] override def stableHash : Boolean

Is the hash of this type the same for all possible sequences of enclosing binders?

[+] override def underlying ( implicit ctx: Context ) : Type

The type to which this proxy forwards operations.

[+] def wrapIfMember ( parent: Type ) ( implicit ctx: Context ) : Type

Add this refinement to parent, provided refinedName is a member of parent.