class Savi::Compiler::Infer::Visitor

Defined in:

savi/compiler/infer.cr

Constructors

Instance Method Summary

Instance methods inherited from class Savi::Compiler::Infer::TypeExprEvaluator

lookup_type_param_bound_cap(ctx : Context, type_param : TypeParam) : MetaType lookup_type_param_bound_cap, lookup_type_param_bound_cap_set(ctx : Context, type_param : TypeParam) : Array(Cap) lookup_type_param_bound_cap_set, lookup_type_param_bound_span(ctx : Context, type_param : TypeParam) lookup_type_param_bound_span, lookup_type_param_partial_reified_span(ctx : Context, type_param : TypeParam) lookup_type_param_partial_reified_span, refer_type_for(node : AST::Node) : Refer::Info | Nil refer_type_for, self_type_expr_span(ctx : Context, cap_only = false) : Span self_type_expr_span, t_link : Program::Type::Link | Program::TypeAlias::Link t_link, type_expr_span(ctx : Context, node : AST::Identifier, cap_only = false) : Span
type_expr_span(ctx : Context, node : AST::Relate, cap_only = false) : Span
type_expr_span(ctx : Context, node : AST::Group, cap_only = false) : Span
type_expr_span(ctx : Context, node : AST::Qualify, cap_only = false) : Span
type_expr_span(ctx : Context, node : AST::Node, cap_only = false) : Span
type_expr_span
, unwrap_lazy_parts_of_type_expr_span(ctx : Context, span : Span) : Span unwrap_lazy_parts_of_type_expr_span

Constructor Detail

def self.new(func : Program::Function, link : Program::Function::Link, analysis : FuncAnalysis, t_analysis : TypeAnalysis, refer_type : ReferType::Analysis, refer_type_parent : ReferType::Analysis, classify : Classify::Analysis, type_context : TypeContext::Analysis, pre_infer : PreInfer::Analysis) #

[View source]

Instance Method Detail


[View source]
def apply_substs_for_layer(ctx : Context, info : Info, span : Span) : Span #

[View source]
def core_savi_reified_type(ctx : Context, name : String, args = [] of MetaType) #

[View source]
def core_savi_type_span(ctx : Context, name : String, type_arg_name : String | Nil = nil) #

[View source]
def depends_on_call_error_out_span(ctx, other_rt, other_f, other_f_link, call_cap : Cap) #

[View source]
def depends_on_call_param_span(ctx, other_rt, other_f, other_f_link, call_cap : Cap, index) #

[View source]
def depends_on_call_ret_span(ctx, other_rt, other_f, other_f_link, call_cap : Cap) #

[View source]
def depends_on_call_yield_in_span(ctx, other_rt, other_f, other_f_link, call_cap : Cap) #

[View source]
def depends_on_call_yield_out_span(ctx, other_rt, other_f, other_f_link, call_cap : Cap, index) #

[View source]
def init_analysis #

[View source]
def refer_type_for(node : AST::Node) : Refer::Info | Nil #

[View source]
def resolve(ctx : Context, info : Info) : Span #

[View source]
def ret #

[View source]
def run(ctx : Context) #

[View source]
def run_edge(ctx : Context) #

[View source]
def self_type_expr_span(ctx : Context, cap_only = false) : Span #

[View source]
def self_with_specified_cap(ctx : Context, cap : String) #

[View source]

[View source]