1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
# frozen_string_literal: true
module RuboCop
module AST
# Used for modern support only!
# Not as thoroughly tested as legacy equivalent
#
# $ ruby-parse -e "foo[:bar]"
# (index
# (send nil :foo)
# (sym :bar))
# $ ruby-parse --legacy -e "foo[:bar]"
# (send
# (send nil :foo) :[]
# (sym :bar))
#
# The main RuboCop runs in legacy mode; this node is only used
# if user `AST::Builder.modernize` or `AST::Builder.emit_index=true`
class IndexNode < Node
include ParameterizedNode::RestArguments
include MethodDispatchNode
# For similarity with legacy mode
def attribute_accessor?
false
end
# For similarity with legacy mode
def assignment_method?
false
end
# For similarity with legacy mode
def method_name
:[]
end
private
# An array containing the arguments of the dispatched method.
#
# @return [Array<Node>] the arguments of the dispatched method
def first_argument_index
1
end
end
end
end
|