HasType

interface HasType

Types

Link copied to clipboard
The Typeresolver needs to be aware of all outgoing edges to types in order to merge equal types to the same node.
Link copied to clipboard
interface TypeListener

Functions

Link copied to clipboard
abstract fun getPossibleSubTypes(): List<Type>
Link copied to clipboard
abstract fun getPropagationType(): Type
Link copied to clipboard
abstract fun getType(): Type
Link copied to clipboard
Link copied to clipboard
abstract fun refreshType()
Link copied to clipboard
Link copied to clipboard
abstract fun resetTypes(type: Type)
Used to set the type and clear the possible subtypes list for when a type is more precise than the current.
Link copied to clipboard
open fun setPossibleSubTypes(possibleSubTypes: List<Type>)

abstract fun setPossibleSubTypes(possibleSubTypes: List<Type>, @NotNull root: @NotNull List<HasType>)
Set the node's possible subtypes.
Link copied to clipboard
open fun setType(type: Type)

abstract fun setType(type: Type, root: List<HasType>)
Set the node's type.
Link copied to clipboard
Link copied to clipboard
abstract fun updatePossibleSubtypes(types: List<Type>)
Link copied to clipboard
abstract fun updateType(type: Type)
Sideeffect free type modification WARNING: This should only be used by the TypeSystem Pass

Inheritors

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard