class TypeProf::Core::AST::Node::ProgramNode
Attributes
body[R]
tbl[R]
Public Class Methods
new(raw_node, lenv)
click to toggle source
Calls superclass method
TypeProf::Core::AST::Node::new
# File typeprof-0.30.1/lib/typeprof/core/ast/base.rb, line 195 def initialize(raw_node, lenv) super(raw_node, lenv) @tbl = raw_node.locals raw_body = raw_node.statements @body = AST.create_node(raw_body, lenv, false) end
Public Instance Methods
attrs(= { tbl: })
click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/base.rb, line 207 def attrs = { tbl: } def install0(genv) @tbl.each {|var| @lenv.locals[var] = Source.new(genv.nil_type) } @lenv.locals[:"*self"] = lenv.cref.get_self(genv) # for toplevel return @body.lenv.locals[:"*expected_method_ret"] = Vertex.new(self) @body.install(genv) end end
install0(genv)
click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/base.rb, line 209 def install0(genv) @tbl.each {|var| @lenv.locals[var] = Source.new(genv.nil_type) } @lenv.locals[:"*self"] = lenv.cref.get_self(genv) # for toplevel return @body.lenv.locals[:"*expected_method_ret"] = Vertex.new(self) @body.install(genv) end
subnodes(= { body: })
click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/base.rb, line 206 def subnodes = { body: } def attrs = { tbl: } def install0(genv) @tbl.each {|var| @lenv.locals[var] = Source.new(genv.nil_type) } @lenv.locals[:"*self"] = lenv.cref.get_self(genv) # for toplevel return @body.lenv.locals[:"*expected_method_ret"] = Vertex.new(self) @body.install(genv) end end class DummyNilNode < Node def initialize(code_range, lenv) @code_range = code_range super(nil, lenv) end def code_range @code_range end def install0(genv) Source.new(genv.nil_type) end end class DummyRHSNode < Node def initialize(code_range, lenv) @code_range = code_range super(nil, lenv) end def code_range @code_range end def install0(_) Vertex.new(self) end end class DummySymbolNode def initialize(sym, code_range, ret) @sym = sym @code_range = code_range @ret = ret end attr_reader :lenv, :prev_node, :ret def boxes(_) [] end end end