abstract class Savi::Compiler::Infer::DynamicInfo
Direct Known Subclasses
- Savi::Compiler::Infer::AddressOf
- Savi::Compiler::Infer::ArrayLiteral
- Savi::Compiler::Infer::ArrayLiteralElementAntecedent
- Savi::Compiler::Infer::Field
- Savi::Compiler::Infer::FieldExtract
- Savi::Compiler::Infer::FieldRead
- Savi::Compiler::Infer::FixedInfo
- Savi::Compiler::Infer::FromCall
- Savi::Compiler::Infer::FromCallErrorOut
- Savi::Compiler::Infer::FromCallYieldOut
- Savi::Compiler::Infer::Literal
- Savi::Compiler::Infer::LocalRef
- Savi::Compiler::Infer::NamedInfo
- Savi::Compiler::Infer::Phi
- Savi::Compiler::Infer::Refinement
- Savi::Compiler::Infer::ReflectionOfType
- Savi::Compiler::Infer::StackAddressOfVariable
- Savi::Compiler::Infer::StaticAddressOfFunction
- Savi::Compiler::Infer::TowardCallParam
- Savi::Compiler::Infer::TowardCallYieldIn
Defined in:
savi/compiler/infer/info.crInstance Method Summary
- #add_downstream(use_pos : Source::Pos, info : Info)
-
#adds_alias
May be implemented by the child class as an optional hook.
-
#after_add_downstream(use_pos : Source::Pos, info : Info)
May be implemented by the child class as an optional hook.
- #describe_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc)
-
#describe_kind : String
Must be implemented by the child class as an required hook.
- #described_kind
- #downstream_tethers(querent : Info) : Array(Tether)
- #downstream_use_pos
- #downstreams_each
- #downstreams_empty?
- #list_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc)
- #tether_constraint_spans(ctx : Context, infer : Visitor)
- #tethers(querent : Info) : Array(Tether)
-
#this_would_be_possible_if : Tuple(Source::Pos, String) | Nil
This property can be set to give a hint in the event of a typecheck error.
-
#this_would_be_possible_if=(this_would_be_possible_if : Tuple(Source::Pos, String) | Nil)
This property can be set to give a hint in the event of a typecheck error.
-
#total_downstream_constraint(ctx : Context, type_check : TypeCheck::ForReifiedFunc)
When we need to take into consideration the downstreams' constraints in order to infer our type from them, we can use this to collect all those constraints into one intersection of them all.
Instance methods inherited from class Savi::Compiler::Infer::Info
add_downstream(use_pos : Source::Pos, info : Info)
add_downstream,
add_peer_hint(peer : Info)
add_peer_hint,
as_conduit? : Conduit | Nil
as_conduit?,
as_downstream_constraint_meta_type(ctx : Context, type_check : TypeCheck::ForReifiedFunc) : MetaType | Nil
as_downstream_constraint_meta_type,
as_multiple_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc) : Array(Tuple(Source::Pos, MetaType)) | Nil
as_multiple_downstream_constraints,
as_upstream_conduits : Array(Conduit)
as_upstream_conduits,
layer_index : Int32
layer_index,
layer_index=(layer_index : Int32)
layer_index=,
layer_index? : Int32 | Nil
layer_index?,
override_describe_kind : String | Nil
override_describe_kind,
override_describe_kind=(override_describe_kind : String | Nil)
override_describe_kind=,
pos : Source::Pos
pos,
pos=(pos : Source::Pos)
pos=,
resolve_span!(ctx : Context, infer : Visitor)
resolve_span!,
tether_resolve_span(ctx : Context, infer : Visitor)
tether_resolve_span,
tether_terminal?
tether_terminal?,
tether_upward_transform_span(ctx : Context, infer : Visitor, span : Span) : Span
tether_upward_transform_span,
tethers(querent : Info) : Array(Tether)
tethers,
to_s
to_s
Instance Method Detail
May be implemented by the child class as an optional hook.
Must be implemented by the child class as an required hook.
This property can be set to give a hint in the event of a typecheck error.
This property can be set to give a hint in the event of a typecheck error.
When we need to take into consideration the downstreams' constraints in order to infer our type from them, we can use this to collect all those constraints into one intersection of them all.