class Savi::Compiler::TInfer::TowardCallParam

Defined in:

savi/compiler/t_infer/info.cr

Constructors

Instance Method Summary

Instance methods inherited from class Savi::Compiler::TInfer::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 : TTypeCheck::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 : TTypeCheck::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 : TTypeCheck::ForReifiedFunc) total_downstream_constraint

Instance methods inherited from class Savi::Compiler::TInfer::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 : TTypeCheck::ForReifiedFunc) : MetaType | Nil as_downstream_constraint_meta_type, as_multiple_downstream_constraints(ctx : Context, type_check : TTypeCheck::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::TInfer::FromCall, index : Int32) #

[View source]

Instance Method Detail

def as_multiple_downstream_constraints(ctx : Context, type_check : TTypeCheck::ForReifiedFunc) : Array(Tuple(Source::Pos, MetaType)) | Nil #
Description copied from class Savi::Compiler::TInfer::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.


[View source]
def call : FromCall #

[View source]
def describe_kind : String #
Description copied from class Savi::Compiler::TInfer::DynamicInfo

Must be implemented by the child class as an required hook.


[View source]
def index : Int32 #

[View source]
def resolve_span!(ctx : Context, infer : Visitor) : Span #

[View source]
def tether_resolve_span(ctx : Context, infer : Visitor) #

[View source]
def tether_terminal? #

[View source]