Class: RuboCop::AST::ArgsNode

Inherits:
Node
  • Object
show all
Includes:
CollectionNode
Defined in:
lib/rubocop/ast/node/args_node.rb

Overview

A node extension for args nodes. This will be used in place of a plain node when the builder constructs the AST, making its methods available to all args nodes within RuboCop.

Constant Summary

Constants inherited from Node

Node::ASSIGNMENTS, Node::BASIC_CONDITIONALS, Node::BASIC_LITERALS, Node::COMPARISON_OPERATORS, Node::COMPOSITE_LITERALS, Node::CONDITIONALS, Node::EQUALS_ASSIGNMENTS, Node::FALSEY_LITERALS, Node::IMMUTABLE_LITERALS, Node::KEYWORDS, Node::LITERALS, Node::LOOP_TYPES, Node::MUTABLE_LITERALS, Node::OPERATOR_KEYWORDS, Node::POST_CONDITION_LOOP_TYPES, Node::REFERENCES, Node::SHORTHAND_ASSIGNMENTS, Node::SPECIAL_KEYWORDS, Node::TRUTHY_LITERALS, Node::VARIABLES

Instance Method Summary collapse

Methods included from SimpleForwardable

#def_delegators

Methods inherited from Node

#ancestors, #any_block_type?, #any_def_type?, #any_match_pattern_type?, #any_str_type?, #any_sym_type?, #argument?, #argument_type?, #assignment?, #assignment_or_similar?, #basic_conditional?, #basic_literal?, #boolean_type?, #call_type?, #chained?, #class_constructor?, #class_definition?, #complete!, #complete?, #conditional?, #const_name, #defined_module, #defined_module_name, #each_ancestor, #empty_source?, #equals_asgn?, #falsey_literal?, #first_line, #global_const?, #guard_clause?, #immutable_literal?, #initialize, #keyword?, #lambda?, #lambda_or_proc?, #last_line, #left_sibling, #left_siblings, #line_count, #literal?, #loc?, #loc_is?, #loop_keyword?, #match_guard_clause?, #module_definition?, #multiline?, #mutable_literal?, #nonempty_line_count, #numeric_type?, #operator_keyword?, #parent, #parent?, #parent_module_name, #parenthesized_call?, #post_condition_loop?, #proc?, #pure?, #range_type?, #receiver, #recursive_basic_literal?, #recursive_literal?, #reference?, #right_sibling, #right_siblings, #root?, #send_type?, #shorthand_asgn?, #sibling_index, #single_line?, #source, #source_length, #source_range, #special_keyword?, #str_content, #struct_constructor?, #truthy_literal?, #type?, #updated, #value_used?, #variable?

Methods included from NodePattern::Macros

#def_node_matcher, #def_node_search

Methods included from Descendence

#child_nodes, #descendants, #each_child_node, #each_descendant, #each_node

Methods included from Sexp

#s

Constructor Details

This class inherits a constructor from RuboCop::AST::Node

Instance Method Details

#argument_listArray<Node>

Yield each argument from the collection. Arguments can be inside mlhs nodes in the case of destructuring, so this flattens the collection to just arg, optarg, restarg, kwarg, kwoptarg, kwrestarg, blockarg, forward_arg and shadowarg.

Returns:

  • (Array<Node>)

    array of argument nodes.



34
35
36
# File 'lib/rubocop/ast/node/args_node.rb', line 34

def argument_list
  each_descendant(:argument).to_a.freeze
end

#empty_and_without_delimiters?Boolean

It returns true if arguments are empty and delimiters do not exist. @example:

# true
def x; end
x { }
-> {}

# false
def x(); end
def x a; end
x { || }
-> () {}
-> a {}

Returns:

  • (Boolean)


24
25
26
# File 'lib/rubocop/ast/node/args_node.rb', line 24

def empty_and_without_delimiters?
  loc.expression.nil?
end