class TypeProf::Core::EscapeBox::HashSplatBox::MAsgnBox
Attributes
Public Class Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/graph/box.rb, line 1048 def initialize(node, genv, value, lefts, rest_elem, rights) super(node) @value = value @lefts = lefts @rest_elem = rest_elem @rights = rights @value.add_edge(genv, self) 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 1059 def destroy(genv) @value.remove_edge(genv, self) # TODO: Is this really needed? super(genv) end
Calls superclass method
TypeProf::Core::Box#destroy
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/graph/box.rb, line 1064 def ret = @rhs def run0(genv, changes) edges = [] @value.each_type do |ty| # TODO: call to_ary? case ty when Type::Array edges.concat(ty.splat_assign(genv, @lefts, @rest_elem, @rights)) else if @lefts.size >= 1 edges << [Source.new(ty), @lefts[0]] elsif @rights && @rights.size >= 1 edges << [Source.new(ty), @rights[0]] else edges << [Source.new(ty), @rest_elem] end end end edges.each do |src, dst| changes.add_edge(genv, src, dst) end end end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/graph/box.rb, line 1066 def run0(genv, changes) edges = [] @value.each_type do |ty| # TODO: call to_ary? case ty when Type::Array edges.concat(ty.splat_assign(genv, @lefts, @rest_elem, @rights)) else if @lefts.size >= 1 edges << [Source.new(ty), @lefts[0]] elsif @rights && @rights.size >= 1 edges << [Source.new(ty), @rights[0]] else edges << [Source.new(ty), @rest_elem] end end end edges.each do |src, dst| changes.add_edge(genv, src, dst) end end