class Savi::Compiler::TInfer::Local

Defined in:

savi/compiler/t_infer/info.cr

Constructors

Instance Method Summary

Instance methods inherited from class Savi::Compiler::TInfer::NamedInfo

adds_alias adds_alias, after_add_downstream(use_pos : Source::Pos, info : Info) after_add_downstream, as_conduit? : Conduit | Nil as_conduit?, assign(ctx : Context, upstream : Info, upstream_pos : Source::Pos) assign, explicit? : Bool explicit?, explicit_is_type_expr_cap? : Bool explicit_is_type_expr_cap?, first_viable_constraint_pos : Source::Pos first_viable_constraint_pos, infer_from_all_upstreams? : Bool infer_from_all_upstreams?, resolve_span!(ctx : Context, infer : Visitor) : Span resolve_span!, set_explicit(explicit : Info) set_explicit, tether_upward_transform_span(ctx : Context, infer : Visitor, span : Span) : Span tether_upward_transform_span, tethers(querent : Info) : Array(Tether) tethers, upstream_infos upstream_infos

Constructor methods inherited from class Savi::Compiler::TInfer::NamedInfo

new(pos, layer_index) new

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) #

[View source]

Instance Method Detail

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 infer_from_all_upstreams? : Bool #
Description copied from class Savi::Compiler::TInfer::NamedInfo

By default, a NamedInfo will only treat the first assignment as relevant for inferring when there is no explicit, but some subclasses may override.


[View source]
def set_infer_from_all_upstreams #

[View source]