Class: RuboCop::AST::ArgsNode
- 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
-
#argument_list ⇒ Array<Node>
Yield each argument from the collection.
-
#empty_and_without_delimiters? ⇒ Boolean
It returns true if arguments are empty and delimiters do not exist.
Methods included from SimpleForwardable
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
Constructor Details
This class inherits a constructor from RuboCop::AST::Node
Instance Method Details
#argument_list ⇒ Array<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.
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 {}
24 25 26 |
# File 'lib/rubocop/ast/node/args_node.rb', line 24 def empty_and_without_delimiters? loc.expression.nil? end |