Dotty Documentation

0.14.0-bin-SNAPSHOT

abstract case class ClassInfo
extends CachedGroundType with TypeType with Product with Serializable

Roughly: the info of a class during a period.

[-] Constructors

ClassInfo ( prefix: Type , cls: ClassSymbol , classParents: List [ Type ] , decls: Scope , selfInfo: TypeOrSymbol )

[-] Members

[+] private var appliedRefCache : Type
[+] val classParents : List [ Type ]
[+] val cls : ClassSymbol
[+] val decls : Scope
[+] private var parentsCache : List [ Type ]
[+] val prefix : Type
[+] val selfInfo : TypeOrSymbol
[+] private var selfTypeCache : Type
[+] def appliedRef ( implicit ctx: Context ) : Type
[+] override def computeHash ( bs: Binders ) : Int

Compute hashcode relative to enclosing binders bs

[+] def derivedClassInfo ( prefix: Type ) ( implicit ctx: Context ) : ClassInfo
[+] def derivedClassInfo ( prefix: Type , classParents: List [ Type ] , decls: Scope , selfInfo: TypeOrSymbol ) ( implicit ctx: Context ) : ClassInfo
[+] def derivedClassInfo$default$1 : Type
[+] def derivedClassInfo$default$2 : List [ Type ]
[+] def derivedClassInfo$default$3 : Scope
[+] def derivedClassInfo$default$4 : TypeOrSymbol
[+] 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 equals ( that: Any ) : Boolean
[+] 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 parents ( implicit ctx: Context ) : List [ Type ]

The full parent types, including all type arguments

[+] def selfType ( implicit ctx: Context ) : Type

The self type of a class is the conjunction of - the explicit self type if given (or the info of a given self symbol), and - the fully applied reference to the class itself.

[+] override def stableHash : Boolean

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

[+] override def toString : String