class Savi::Compiler::PreInfer::FuncVisitor

Defined in:

savi/compiler/pre_infer.cr

Constructors

Instance Method Summary

Instance methods inherited from class Savi::AST::Visitor

visit(ctx : Compiler::Context, node : Node) visit, visit_any?(ctx : Compiler::Context, node : Node) visit_any?, visit_children?(ctx : Compiler::Context, node : Node) visit_children?, visit_pre(ctx : Compiler::Context, node : Node) visit_pre

Constructor Detail

def self.new(func : Program::Function, link : Program::Function::Link, analysis : Analysis, inventory : Inventory::Analysis, jumps : Jumps::Analysis, classify : Classify::Analysis, refer : Refer::Analysis, type_context : TypeContext::Analysis) #

[View source]

Instance Method Detail

def [](node : AST::Node) #

[View source]
def []?(node : AST::Node) #

[View source]

[View source]
def core_savi_mt(ctx : Context, name, cap) #

[View source]
def finish_param(node : AST::Node, info : Infer::Info) #

[View source]

[View source]
def lookup_local_ident(ref : Refer::Local) #

[View source]
def params #

[View source]
def ret #

[View source]
def run(ctx) #

[View source]
def touch(ctx : Context, node : AST::Identifier) #

[View source]
def touch(ctx : Context, node : AST::Jump) #

[View source]
def touch(ctx : Context, node : AST::LiteralString) #

[View source]
def touch(ctx : Context, node : AST::LiteralCharacter) #

A literal character could be any integer or floating-point machine type. If no type can be clearly inferred, we fall back to an I32 assumption.


[View source]
def touch(ctx : Context, node : AST::LiteralInteger) #

A literal integer could be any integer or floating-point machine type. If no type can be clearly inferred, we fall back to an I32 assumption.


[View source]
def touch(ctx : Context, node : AST::LiteralFloat) #

A literal float could be any floating-point machine type. If no type can be clearly inferred, we fall back to an F64 assumption.


[View source]
def touch(ctx : Context, node : AST::Group) #

[View source]
def touch(ctx : Context, node : AST::FieldRead) #

[View source]
def touch(ctx : Context, node : AST::FieldWrite) #

[View source]
def touch(ctx : Context, node : AST::FieldDisplace) #

[View source]
def touch(ctx : Context, node : AST::Relate) #

[View source]
def touch(ctx : Context, node : AST::Qualify) #

[View source]
def touch(ctx : Context, node : AST::Prefix) #

[View source]
def touch(ctx : Context, node : AST::Call) #

[View source]
def touch(ctx : Context, node : AST::Choice) #

[View source]
def touch(ctx : Context, node : AST::Loop) #

[View source]
def touch(ctx : Context, node : AST::Try) #

[View source]
def touch(ctx : Context, node : AST::Yield) #

[View source]
def touch(ctx : Context, node : AST::Node) #

[View source]
def visit(ctx, node) #

This visitor never replaces nodes, it just touches them and returns them.


[View source]
def visit_children?(ctx, node) #

[View source]