module Solargraph::Parser::Rubyvm::NodeMethods::DeepInference
def reduce_to_value_nodes nodes
def reduce_to_value_nodes nodes result = [] nodes.each do |node| if !node.is_a?(RubyVM::AbstractSyntaxTree::Node) result.push nil elsif REDUCEABLE.include?(node.type) result.concat get_return_nodes_from_children(node) elsif CONDITIONAL.include?(node.type) result.concat reduce_to_value_nodes(node.children[1..-1]) elsif node.type == :RETURN if node.children[0].nil? result.push nil else result.concat get_return_nodes(node.children[0]) end elsif node.type == :OR result.concat reduce_to_value_nodes(node.children) elsif node.type == :BLOCK result.concat get_return_nodes_only(node.children[2]) elsif node.type == :RESBODY result.concat reduce_to_value_nodes([node.children[1]]) else result.push node end end result end