class TypeProf::Core::AST::StatementsNode::MultiWriteNode::MatchWriteNode

Attributes

call[R]
targets[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/misc.rb, line 124
def initialize(raw_node, lenv)
  super(raw_node, lenv)
  @call = AST.create_node(raw_node.call, lenv)
  @targets = raw_node.targets.map do |raw_lhs|
    AST.create_target_node(raw_lhs, lenv)
  end
end

Public Instance Methods

install0(genv) click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/misc.rb, line 135
def install0(genv)
  ret = @call.install(genv)
  @targets.each do |target|
    target.install(genv)
    target.rhs.ret || raise(target.rhs.inspect)
    @changes.add_edge(genv, Source.new(Type::Instance.new(genv, genv.mod_str, [])), target.rhs.ret)
  end
  ret
end
subnodes(= { call:, targets: }) click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/misc.rb, line 133
  def subnodes = { call:, targets: }

  def install0(genv)
    ret = @call.install(genv)
    @targets.each do |target|
      target.install(genv)
      target.rhs.ret || raise(target.rhs.inspect)
      @changes.add_edge(genv, Source.new(Type::Instance.new(genv, genv.mod_str, [])), target.rhs.ret)
    end
    ret
  end
end