struct Savi::Compiler::XTypes::NominalType
- Savi::Compiler::XTypes::NominalType
- Savi::Compiler::XTypes::AlgebraicTypeSimple
- Savi::Compiler::XTypes::AlgebraicTypeFactor
- Savi::Compiler::XTypes::AlgebraicTypeSummand
- Savi::Compiler::XTypes::AlgebraicType
- Struct
- Value
- Object
Defined in:
savi/compiler/xtypes/algebraic_type.crConstructors
Instance Method Summary
- #aliased
- #args : Array(AlgebraicType) | Nil
- #bind_variables(mapping : Hash(TypeVariable, AlgebraicType)) : Tuple(AlgebraicType, Bool)
- #intersect(other : AlgebraicType)
- #link : Program::Type::Link
- #observe_assignment_reciprocals(pos : Source::Pos, supertype : AlgebraicType, maybe : Bool = false)
- #override_cap(cap : AlgebraicType)
- #show
- #stabilized
- #viewed_from(origin)
Instance methods inherited from struct Savi::Compiler::XTypes::AlgebraicTypeSimple
aliased
aliased,
stabilized
stabilized
Instance methods inherited from struct Savi::Compiler::XTypes::AlgebraicTypeFactor
intersect(other : AlgebraicType)
intersect,
viewed_from(origin)
viewed_from
Instance methods inherited from struct Savi::Compiler::XTypes::AlgebraicTypeSummand
unite(other : AlgebraicType)
unite
Instance methods inherited from struct Savi::Compiler::XTypes::AlgebraicType
aliased
aliased,
bind_variables(mapping : Hash(TypeVariable, AlgebraicType)) : Tuple(AlgebraicType, Bool)
bind_variables,
initialize
initialize,
inspect
inspect,
intersect(other : AlgebraicType)
intersect,
is_assignment_based_on_input_var? : Bool
is_assignment_based_on_input_var?,
observe_assignment_reciprocals(pos : Source::Pos, supertype : AlgebraicType, maybe : Bool = false)
observe_assignment_reciprocals,
override_cap(cap : AlgebraicType)
override_cap,
show
show,
stabilized
stabilized,
trace_as_assignment(cursor : Cursor)
trace_as_assignment,
trace_as_constraint(cursor : Cursor)
trace_as_constraint,
trace_call_return_as_assignment(cursor : Cursor, call : AST::Call)
trace_call_return_as_assignment,
viewed_from(origin)
viewed_from
Constructor methods inherited from struct Savi::Compiler::XTypes::AlgebraicType
new
new
Constructor Detail
def self.new(link : Savi::Program::Type::Link, args : Nil | Array(Savi::Compiler::XTypes::AlgebraicType) = nil)
#
Instance Method Detail
def observe_assignment_reciprocals(pos : Source::Pos, supertype : AlgebraicType, maybe : Bool = false)
#