class Savi::Compiler::Infer::TowardCallParam
- Savi::Compiler::Infer::TowardCallParam
- Savi::Compiler::Infer::DynamicInfo
- Savi::Compiler::Infer::Info
- Reference
- Object
Defined in:
savi/compiler/infer/info.crConstructors
Instance Method Summary
-
#as_multiple_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc) : Array(Tuple(Source::Pos, MetaType)) | Nil
In the rare case that an Info subclass needs to dynamically pretend to be multiple different downstream constraints, it can override this method.
- #call : FromCall
-
#describe_kind : String
Must be implemented by the child class as an required hook.
- #index : Int32
- #resolve_span!(ctx : Context, infer : Visitor) : Span
- #tether_resolve_span(ctx : Context, infer : Visitor)
- #tether_terminal?
Instance methods inherited from class Savi::Compiler::Infer::DynamicInfo
add_downstream(use_pos : Source::Pos, info : Info)
add_downstream,
adds_alias
adds_alias,
after_add_downstream(use_pos : Source::Pos, info : Info)
after_add_downstream,
describe_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc)
describe_downstream_constraints,
describe_kind : String
describe_kind,
described_kind
described_kind,
downstream_tethers(querent : Info) : Array(Tether)
downstream_tethers,
downstream_use_pos
downstream_use_pos,
downstreams_each
downstreams_each,
downstreams_empty?
downstreams_empty?,
list_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc)
list_downstream_constraints,
tether_constraint_spans(ctx : Context, infer : Visitor)
tether_constraint_spans,
tethers(querent : Info) : Array(Tether)
tethers,
this_would_be_possible_if : Tuple(Source::Pos, String) | Nil
this_would_be_possible_if,
this_would_be_possible_if=(this_would_be_possible_if : Tuple(Source::Pos, String) | Nil)
this_would_be_possible_if=,
total_downstream_constraint(ctx : Context, type_check : TypeCheck::ForReifiedFunc)
total_downstream_constraint
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
Constructor Detail
def self.new(pos, layer_index, call : Savi::Compiler::Infer::FromCall, index : Int32)
#
Instance Method Detail
def as_multiple_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc) : Array(Tuple(Source::Pos, MetaType)) | Nil
#
Description copied from class Savi::Compiler::Infer::Info
In the rare case that an Info subclass needs to dynamically pretend to be multiple different downstream constraints, it can override this method. This is only used to report positions in more detail, and it is expected that the intersection of all MetaTypes here is the same as the resolve.
Description copied from class Savi::Compiler::Infer::DynamicInfo
Must be implemented by the child class as an required hook.