module RuboCop::AST::NodePattern::Macros
def def_node_matcher(method_name, pattern_str, **keyword_defaults)
If the node matches, and no block is provided, the new method will
yield to the block (passing any captures as block arguments).
If the node matches, and a block is provided, the new method will
The new method will return nil if the node does not match
Define a method which applies a pattern to an AST node
def def_node_matcher(method_name, pattern_str, **keyword_defaults) Compiler.new(pattern_str, 'node') .def_node_matcher(self, method_name, **keyword_defaults) end
def def_node_search(method_name, pattern_str, **keyword_defaults)
as soon as it finds a descendant which matches. Otherwise, it will
If the method name ends with '?', the new method will return `true`
checking whether any of them match the provided pattern
Define a method which recurses over the descendants of an AST node,
def def_node_search(method_name, pattern_str, **keyword_defaults) Compiler.new(pattern_str, 'node0', 'node') .def_node_search(self, method_name, **keyword_defaults) end