class Querly::Pattern::Expr::Vcall

Attributes

name[R]

Public Class Methods

new(name:) click to toggle source
# File lib/querly/pattern/expr.rb, line 309
def initialize(name:)
  @name = name
end

Public Instance Methods

=~(pair) click to toggle source
# File lib/querly/pattern/expr.rb, line 313
def =~(pair)
  node = pair.node

  if node.type == :lvar
    # We don't want lvar without method call
    # Skips when the node is not receiver of :send
    parent_node = pair.parent&.node
    if parent_node && (parent_node.type == :send || parent_node.type == :csend) && parent_node.children.first.equal?(node)
      test_node(node)
    end
  else
    test_node(node)
  end
end
test_node(node) click to toggle source
# File lib/querly/pattern/expr.rb, line 328
def test_node(node)
  case node&.type
  when :send, :csend
    node.children[1] == name
  when :lvar
    node.children.first == name
  end
end