class Savi::Compiler::Infer::PassEdge

Overview

The "edge" version of the pass only resolves the minimal amount of nodes needed to understand the type signature of each function in the program.

Defined in:

savi/compiler/infer.cr

Constructors

Instance Method Summary

Instance methods inherited from class Savi::Compiler::Pass::Analyze(Savi::Compiler::Infer::TypeAliasAnalysis, Savi::Compiler::Infer::TypeAnalysis, Savi::Compiler::Infer::FuncAnalysis)

[](t_link : Program::TypeAlias::Link)
[](t_link : Program::Type::Link)
[](f_link : Program::Function::Link)
[]
, []?(t_link : Program::TypeAlias::Link)
[]?(t_link : Program::Type::Link)
[]?(f_link : Program::Function::Link)
[]?
, analyze_func(ctx : Context, f : Program::Function, f_link : Program::Function::Link, t_analysis : TypeAnalysis) : FuncAnalysis analyze_func, analyze_type(ctx : Context, t : Program::Type, t_link : Program::Type::Link) : TypeAnalysis analyze_type, analyze_type_alias(ctx : Context, t : Program::Type, t_link : Program::Type::Link) : TypeAliasAnalysis analyze_type_alias, cache_info_for_alias cache_info_for_alias, cache_info_for_func cache_info_for_func, cache_info_for_type cache_info_for_type, prevent_reentrance(set, link, &) prevent_reentrance, run(ctx : Context, package : Program::Package) run, run_for_func(ctx : Context, f : Program::Function, f_link : Program::Function::Link, optional_t_analysis : TypeAnalysis | Nil = nil) : FuncAnalysis run_for_func, run_for_type(ctx : Context, t : Program::Type, t_link : Program::Type::Link) : TypeAnalysis run_for_type, run_for_type_alias(ctx : Context, t : Program::TypeAlias, t_link : Program::TypeAlias::Link) : TypeAliasAnalysis run_for_type_alias

Constructor methods inherited from class Savi::Compiler::Pass::Analyze(Savi::Compiler::Infer::TypeAliasAnalysis, Savi::Compiler::Infer::TypeAnalysis, Savi::Compiler::Infer::FuncAnalysis)

new new

Constructor Detail

def self.new #

[View source]

Instance Method Detail

def analyze_func(ctx, f, f_link, t_analysis) : FuncAnalysis #

[View source]
def analyze_type(ctx, t, t_link) : TypeAnalysis #

[View source]
def analyze_type_alias(ctx, t, t_link) : TypeAliasAnalysis #

[View source]
def gather_deps_for_func(ctx, f, f_link) #

[View source]