class TypeProf::Core::AST::LiteralNode::NilNode::TrueNode::FalseNode::IntegerNode::FloatNode::RationalNode::ComplexNode::SymbolNode::InterpolatedSymbolNode::StringNode::InterpolatedStringNode - typeprof: Ruby Standard Library Documentation

# class TypeProf::Core::AST::LiteralNode::NilNode::TrueNode::FalseNode::IntegerNode::FloatNode::RationalNode::ComplexNode::SymbolNode::InterpolatedSymbolNode::StringNode::InterpolatedStringNode

### Attributes

parts[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/value.rb, line 130
    def initialize(raw_node, lenv)
      super(raw_node, lenv)
      @parts = []

      queue = raw_node.parts.dup

      until queue.empty?
        raw_part = queue.shift

        if raw_part.type == :interpolated_string_node
          queue.unshift(*raw_part.parts)
        else
          @parts << AST.create_part_node(raw_part, lenv)
        end
      end
    end

### Public Instance Methods

install0(genv) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/ast/value.rb, line 151
    def install0(genv)
      @parts.each do |subnode|
        subnode.install(genv)
      end
      Source.new(genv.str_type)
    end

subnodes(= { parts: }) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/ast/value.rb, line 149
      def subnodes = { parts: }

      def install0(genv)
        @parts.each do |subnode|
          subnode.install(genv)
        end
        Source.new(genv.str_type)
      end
    end