class TypeProf::Core::AST::StatementsNode::MultiWriteNode::MatchWriteNode - typeprof: Ruby Standard Library Documentation

# 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