abstract class Savi::Compiler::Pass::Analyze(TypeAliasAnalysis, TypeAnalysis, FuncAnalysis)

Direct Known Subclasses

Defined in:

savi/compiler/pass/analyze.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new #

[View source]

Instance Method Detail

def [](t_link : Program::TypeAlias::Link) #

[View source]
def [](t_link : Program::Type::Link) #

[View source]
def [](f_link : Program::Function::Link) #

[View source]
def []?(t_link : Program::TypeAlias::Link) #

[View source]
def []?(t_link : Program::Type::Link) #

[View source]
def []?(f_link : Program::Function::Link) #

[View source]
abstract def analyze_func(ctx : Context, f : Program::Function, f_link : Program::Function::Link, t_analysis : TypeAnalysis) : FuncAnalysis #

Required hook to make the pass create an analysis for the given function.


[View source]
abstract def analyze_type(ctx : Context, t : Program::Type, t_link : Program::Type::Link) : TypeAnalysis #

Required hook to make the pass create an analysis for the given type.


[View source]
abstract def analyze_type_alias(ctx : Context, t : Program::Type, t_link : Program::Type::Link) : TypeAliasAnalysis #

Required hook to make the pass create an analysis for the given type alias.


[View source]
def cache_info_for_alias #

[View source]
def cache_info_for_func #

[View source]
def cache_info_for_type #

[View source]
def prevent_reentrance(set, link, &) #

[View source]
def run(ctx : Context, package : Program::Package) #

[View source]
def run_for_func(ctx : Context, f : Program::Function, f_link : Program::Function::Link, optional_t_analysis : TypeAnalysis | Nil = nil) : FuncAnalysis #

[View source]
def run_for_type(ctx : Context, t : Program::Type, t_link : Program::Type::Link) : TypeAnalysis #

[View source]
def run_for_type_alias(ctx : Context, t : Program::TypeAlias, t_link : Program::TypeAlias::Link) : TypeAliasAnalysis #

[View source]