TypeChecker

org.finos.morphir.runtime.TypeChecker
See theTypeChecker companion object
final class TypeChecker(dists: Distributions)

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def check(suspect: TypedValue): TypeCheckerResult
def check(suspect: TypedValue, parentContext: Context): TypeCheckerResult
def checkAllDefinitions(): List[TypeError]
def checkDefinitionBody(fqn: FQName): List[TypeError]
def checkList(argList: List[UType], paramList: List[UType], context: Context): List[TypeError]
def conformsTo(valueType: UType, declaredType: UType): List[TypeError]
def conformsTo(valueType: UType, declaredType: UType, context: Context): List[TypeError]
def dealias(tpe: UType, context: Context): Either[TypeError, UType]
def handleApply(node: TypedValue, tpe: UType, function: TypedValue, argument: TypedValue, context: Context): TypeCheckerResult
def handleConstructor(tpe: UType, fqn: FQName, context: Context): TypeCheckerResult
def handleDestructure(tpe: UType, pattern: Pattern[UType], value: TypedValue, inValue: TypedValue, context: Context): TypeCheckerResult
def handleFieldFunction(tpe: UType, name: Name, context: Context): TypeCheckerResult
def handleFieldValue(tpe: UType, recordValue: TypedValue, name: Name, context: Context): TypeCheckerResult
def handleIfThenElse(tpe: UType, condition: TypedValue, thenValue: TypedValue, elseValue: TypedValue, context: Context): TypeCheckerResult
def handleLambda(tpe: UType, pattern: Pattern[UType], body: TypedValue, context: Context): TypeCheckerResult
def handleLetDefinition(tpe: UType, name: Name, definition: TypedDefinition, inValue: TypedValue, context: Context): TypeCheckerResult
def handleLetRecursion(tpe: UType, definitions: Map[Name, TypedDefinition], inValue: TypedValue, context: Context): TypeCheckerResult
def handleListValue(tpe: UType, elements: List[TypedValue], context: Context): TypeCheckerResult
def handleLiteral(tpe: UType, literal: Lit, context: Context): TypeCheckerResult
def handlePatternMatch(tpe: UType, value: TypedValue, cases: List[(Pattern[UType], TypedValue)], context: Context): TypeCheckerResult
def handleRecord(tpe: UType, valFields: List[(Name, TypedValue)], value: Record[Unit, UType], context: Context): TypeCheckerResult
def handleReference(tpe: UType, fqn: FQName, context: Context): TypeCheckerResult
def handleTuple(tpe: UType, elements: List[TypedValue], context: Context): TypeCheckerResult
def handleUnitValue(tpe: UType, context: Context): TypeCheckerResult
def handleUpdateRecord(tpe: UType, valueToUpdate: TypedValue, fields: Map[Name, TypedValue], context: Context): TypeCheckerResult
def handleVariable(tpe: UType, name: Name, context: Context): TypeCheckerResult
def nameThatMismatch(tpe1: UType, tpe2: UType): String
def uncurryFunctionType(functionTpe: UType, context: Context): Either[TypeError, (UType, Chunk[UType])]