class Savi::Compiler::Completeness::Branch
- Savi::Compiler::Completeness::Branch
- Savi::AST::Visitor
- Reference
- Object
Defined in:
savi/compiler/completeness.crConstructors
Instance Method Summary
- #all_fields : Array(Program::Function)
- #analysis : Analysis
- #branch_cache : Hash(Tuple(Set(String), Program::Function::Link), Branch)
- #call_crumbs : Array(Source::Pos)
- #collect_unseen_fields
- #func : Program::Function
- #func_link : Program::Function::Link
- #jumps : Jumps::Analysis
- #let_fields : Set(String)
- #pre_infer : PreInfer::Analysis
- #seen_fields : Set(String)
- #show_unseen_fields
- #sub_branch(ctx : Context, next_f : Program::Function, next_f_link : Program::Function::Link, call_crumb : Source::Pos, possibly_away = false)
- #sub_branch(node : AST::Node)
- #touch(node : AST::Choice)
- #touch(node : AST::FieldRead)
- #touch(node : AST::FieldWrite)
- #touch(node : AST::FieldDisplace)
- #touch(node : AST::Identifier)
- #touch(node : AST::Call)
- #touch(node : AST::Node)
- #type : Program::Type
-
#visit(ctx, node)
This visitor never replaces nodes, it just touches them and returns them.
- #visit_children?(ctx, node : AST::Choice)
- #visit_pre(ctx, node)
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(ctx : Savi::Compiler::Context, type : Savi::Program::Type, func : Savi::Program::Function, func_link : Savi::Program::Function::Link, analysis : Savi::Compiler::Completeness::Analysis, branch_cache : Hash(Tuple(Set(String), Savi::Program::Function::Link), Savi::Compiler::Completeness::Branch), all_fields : Array(Savi::Program::Function), let_fields : Set(String), seen_fields : Set(String) = Set(String).new, call_crumbs : Array(Savi::Source::Pos) = Array(Source::Pos).new, possibly_away : Bool = false, loop_stack : Array(Savi::AST::Loop) = [] of AST::Loop)
#
Instance Method Detail
def sub_branch(ctx : Context, next_f : Program::Function, next_f_link : Program::Function::Link, call_crumb : Source::Pos, possibly_away = false)
#