class Savi::Compiler::PreTInfer::FuncVisitor
- Savi::Compiler::PreTInfer::FuncVisitor
- Savi::AST::Visitor
- Reference
- Object
Defined in:
savi/compiler/pre_t_infer.crConstructors
Instance Method Summary
- #[](node : AST::Node)
- #[]?(node : AST::Node)
- #analysis : Savi::Compiler::PreTInfer::Analysis
- #core_savi_mt(ctx : Context, name)
- #finish_param(node : AST::Node, info : TInfer::Info)
- #link : Savi::Program::Function::Link
- #lookup_local_ident(ref : Refer::Local)
- #params
- #ret
- #run(ctx)
- #touch(ctx : Context, node : AST::Identifier)
- #touch(ctx : Context, node : AST::Jump)
- #touch(ctx : Context, node : AST::LiteralString)
-
#touch(ctx : Context, node : AST::LiteralCharacter)
A literal character could be any integer or floating-point machine type.
-
#touch(ctx : Context, node : AST::LiteralInteger)
A literal integer could be any integer or floating-point machine type.
-
#touch(ctx : Context, node : AST::LiteralFloat)
A literal float could be any floating-point machine type.
- #touch(ctx : Context, node : AST::Group)
- #touch(ctx : Context, node : AST::FieldRead)
- #touch(ctx : Context, node : AST::FieldWrite)
- #touch(ctx : Context, node : AST::FieldDisplace)
- #touch(ctx : Context, node : AST::Relate)
- #touch(ctx : Context, node : AST::Qualify)
- #touch(ctx : Context, node : AST::Prefix)
- #touch(ctx : Context, node : AST::Call)
- #touch(ctx : Context, node : AST::Choice)
- #touch(ctx : Context, node : AST::Loop)
- #touch(ctx : Context, node : AST::Try)
- #touch(ctx : Context, node : AST::Yield)
- #touch(ctx : Context, node : AST::Node)
-
#visit(ctx, node)
This visitor never replaces nodes, it just touches them and returns them.
- #visit_children?(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(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)
#
Instance Method Detail
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.
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.
A literal float could be any floating-point machine type. If no type can be clearly inferred, we fall back to an F64 assumption.