класс Prism::CallOperatorWriteNode
Представляет использование оператора присваивания в вызове.
foo.bar += baz ^^^^^^^^^^^^^^
Атрибуты
Представляет используемый бинарный оператор.
foo.bar += value # binary_operator `:+`
^ Представляет имя вызываемого метода.
foo.bar += value # read_name `:bar`
^^^ Объект, на котором вызывается метод. Может быть ‘nil` или любым [непустым выражением](github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
foo.bar += value ^^^
Представляет присваиваемое значение.
foo.bar += value
^^^^^ Представляет имя метода, которому осуществляется запись.
foo.bar += value # write_name `:bar=`
^^^ Публичные методы класса
Исходный код
# File lib/prism/node.rb, line 2845 def initialize(source, node_id, location, flags, receiver, call_operator_loc, message_loc, read_name, write_name, binary_operator, binary_operator_loc, value) @source = source @node_id = node_id @location = location @flags = flags @receiver = receiver @call_operator_loc = call_operator_loc @message_loc = message_loc @read_name = read_name @write_name = write_name @binary_operator = binary_operator @binary_operator_loc = binary_operator_loc @value = value end
Инициализировать новый узел CallOperatorWriteNode.
Исходный код
# File lib/prism/node.rb, line 3027 def self.type :call_operator_write_node end
Возвращает символьное представление типа этого узла. См. ‘Node::type`.
Общедоступные методы экземпляров
Исходный код
# File lib/prism/node.rb, line 3033
def ===(other)
other.is_a?(CallOperatorWriteNode) &&
(flags === other.flags) &&
(receiver === other.receiver) &&
(call_operator_loc.nil? == other.call_operator_loc.nil?) &&
(message_loc.nil? == other.message_loc.nil?) &&
(read_name === other.read_name) &&
(write_name === other.write_name) &&
(binary_operator === other.binary_operator) &&
(binary_operator_loc.nil? == other.binary_operator_loc.nil?) &&
(value === other.value)
end Реализует равенство узлов по значению. Это эффективно ==, но без сравнения значений местоположений. Местоположения проверяются только на наличие.
Исходный код
# File lib/prism/node.rb, line 2861 def accept(visitor) visitor.visit_call_operator_write_node(self) end
def accept: (Visitor visitor) -> void
Исходный код
# File lib/prism/node.rb, line 2907 def attribute_write? flags.anybits?(CallNodeFlags::ATTRIBUTE_WRITE) end
def attribute_write?: () -> bool
Исходный код
# File lib/prism/node.rb, line 2988 def binary_operator_loc location = @binary_operator_loc return location if location.is_a?(Location) @binary_operator_loc = Location.new(source, location >> 32, location & 0xFFFFFFFF) end
Представляет местоположение бинарного оператора.
foo.bar += value
^^ Исходный код
# File lib/prism/node.rb, line 3007 def call_operator call_operator_loc&.slice end
def call_operator: () -> String?
Исходный код
# File lib/prism/node.rb, line 2926
def call_operator_loc
location = @call_operator_loc
case location
when nil
nil
when Location
location
else
@call_operator_loc = Location.new(source, location >> 32, location & 0xFFFFFFFF)
end
end Представляет местоположение оператора вызова.
foo.bar += value ^
Исходный код
# File lib/prism/node.rb, line 2866 def child_nodes [receiver, value] end
def child_nodes: () -> Array[nil | Node]
Исходный код
# File lib/prism/node.rb, line 2948
def message_loc
location = @message_loc
case location
when nil
nil
when Location
location
else
@message_loc = Location.new(source, location >> 32, location & 0xFFFFFFFF)
end
end Представляет расположение сообщения.
foo.bar += value
^^^ Исходный код
# File lib/prism/node_ext.rb, line 339
def operator
deprecated("binary_operator")
binary_operator
end Возвращает бинарный оператор, используемый для изменения получателя. Этот метод устарел в пользу binary_operator.
Исходный код
# File lib/prism/node_ext.rb, line 346
def operator_loc
deprecated("binary_operator_loc")
binary_operator_loc
end Возвращает расположение бинарного оператора, используемого для изменения получателя. Этот метод устарел в пользу binary_operator_loc.
Исходный код
def safe_navigation?: () -> bool
Исходный код
# File lib/prism/node.rb, line 2996 def save_binary_operator_loc(repository) repository.enter(node_id, :binary_operator_loc) end
Сохраняет расположение binary_operator_loc с использованием предоставленного сохранённого источника для последующего извлечения.
Исходный код
# File lib/prism/node.rb, line 2940 def save_call_operator_loc(repository) repository.enter(node_id, :call_operator_loc) unless @call_operator_loc.nil? end
Сохраняет расположение call_operator_loc с использованием предоставленного сохранённого источника для последующего извлечения.
Исходный код
# File lib/prism/node.rb, line 2962 def save_message_loc(repository) repository.enter(node_id, :message_loc) unless @message_loc.nil? end
Сохраняет расположение message_loc с использованием предоставленного сохранённого источника для последующего извлечения.
Исходный код
# File lib/prism/node.rb, line 3022 def type :call_operator_write_node end
Возвращает символьную запись типа узла. См. ‘Node#type’.
Исходный код
# File lib/prism/node.rb, line 2902 def variable_call? flags.anybits?(CallNodeFlags::VARIABLE_CALL) end
def variable_call?: () -> bool
Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.