Написал кастомный кс рубокоп, выдержки такие:
def_node_matcher :is_foo_bar?, <<-PATTERN
(send (const nil :Foo) :bar)
PATTERN
def on_send(node)
puts "Match" if is_foo_bar?(node)
end
Я пытаюсь копировать следующий код:
Foo.bar
Интересно, что node.to_s
говорит следующее, что точно соответствует моему образцу:
"(send
(const nil :Foo) :bar)"
Но узел не совпадает. Если я изменю шаблон на следующий, он будет работать:
(send (...) :bar)
Почему мой оригинальный матч не работает?
Мои версии:
- рубин 2.6.2
- аст 2.4.0
- рубокоп 0.77.0
- парсер 2.6.4.1