class TypeProf::Core::EscapeBox::SplatBox
Attributes
Public Class Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/graph/box.rb, line 334 def initialize(node, genv, ary, idx) super(node) @ary = ary @idx = idx @ary.add_edge(genv, self) @ret = Vertex.new(node) end
Calls superclass method
TypeProf::Core::Box::new
Public Instance Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/graph/box.rb, line 344 def run0(genv, changes) @ary.each_type do |ty| case ty when Type::Instance if ty.mod == genv.mod_ary changes.add_edge(genv, ty.args[0], @ret) else "???" end when Type::Array if @idx && @idx < ty.elems.size changes.add_edge(genv, ty.elems[@idx], @ret) else changes.add_edge(genv, ty.get_elem(genv, @idx), @ret) end else "???" end end end