Class: Prism::CallTargetNode
- Inherits:
-
PrismNode
- Object
- PrismNode
- Prism::CallTargetNode
- Defined in:
- lib/prism/node.rb,
ext/prism/api_node.c
Overview
Represents assigning to a method call.
foo., = 1
^^^^^^^
begin
rescue => foo.
^^^^^^^
end
for foo. in baz do end
^^^^^^^
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
attr_reader name: Symbol.
-
#receiver ⇒ Object
readonly
attr_reader receiver: Prism::node.
Class Method Summary collapse
-
.type ⇒ Object
Return a symbol representation of this node type.
Instance Method Summary collapse
-
#===(other) ⇒ Object
Implements case-equality for the node.
-
#accept(visitor) ⇒ Object
def accept: (Visitor visitor) -> void.
-
#attribute_write? ⇒ Boolean
def attribute_write?: () -> bool.
-
#call_operator ⇒ Object
def call_operator: () -> String.
-
#call_operator_loc ⇒ Object
attr_reader call_operator_loc: Location.
-
#child_nodes ⇒ Object
(also: #deconstruct)
def child_nodes: () -> Array[nil | Node].
-
#comment_targets ⇒ Object
def comment_targets: () -> Array[Node | Location].
-
#compact_child_nodes ⇒ Object
def compact_child_nodes: () -> Array.
-
#copy(node_id: self.node_id, location: self.location, flags: self.flags, receiver: self.receiver, call_operator_loc: self.call_operator_loc, name: self.name, message_loc: self.message_loc) ⇒ Object
def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?call_operator_loc: Location, ?name: Symbol, ?message_loc: Location) -> CallTargetNode.
-
#deconstruct_keys(keys) ⇒ Object
def deconstruct_keys: (Array keys) -> { node_id: Integer, location: Location, receiver: Prism::node, call_operator_loc: Location, name: Symbol, message_loc: Location }.
-
#ignore_visibility? ⇒ Boolean
def ignore_visibility?: () -> bool.
-
#initialize(source, node_id, location, flags, receiver, call_operator_loc, name, message_loc) ⇒ CallTargetNode
constructor
Initialize a new CallTargetNode node.
-
#inspect ⇒ Object
def inspect -> String.
-
#message ⇒ Object
def message: () -> String.
-
#message_loc ⇒ Object
attr_reader message_loc: Location.
-
#safe_navigation? ⇒ Boolean
def safe_navigation?: () -> bool.
-
#type ⇒ Object
Return a symbol representation of this node type.
-
#variable_call? ⇒ Boolean
def variable_call?: () -> bool.
Constructor Details
#initialize(source, node_id, location, flags, receiver, call_operator_loc, name, message_loc) ⇒ CallTargetNode
Initialize a new CallTargetNode node.
2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 |
# File 'lib/prism/node.rb', line 2747 def initialize(source, node_id, location, flags, receiver, call_operator_loc, name, ) @source = source @node_id = node_id @location = location @flags = flags @receiver = receiver @call_operator_loc = call_operator_loc @name = name = end |
Instance Attribute Details
#name ⇒ Object (readonly)
attr_reader name: Symbol
2822 2823 2824 |
# File 'lib/prism/node.rb', line 2822 def name @name end |
#receiver ⇒ Object (readonly)
attr_reader receiver: Prism::node
2812 2813 2814 |
# File 'lib/prism/node.rb', line 2812 def receiver @receiver end |
Class Method Details
.type ⇒ Object
Return a symbol representation of this node type. See ‘Node::type`.
2852 2853 2854 |
# File 'lib/prism/node.rb', line 2852 def self.type :call_target_node end |
Instance Method Details
#===(other) ⇒ Object
Implements case-equality for the node. This is effectively == but without comparing the value of locations. Locations are checked only for presence.
2858 2859 2860 2861 2862 2863 2864 2865 |
# File 'lib/prism/node.rb', line 2858 def ===(other) other.is_a?(CallTargetNode) && (flags === other.flags) && (receiver === other.receiver) && (call_operator_loc.nil? == other.call_operator_loc.nil?) && (name === other.name) && (.nil? == other..nil?) end |
#accept(visitor) ⇒ Object
def accept: (Visitor visitor) -> void
2759 2760 2761 |
# File 'lib/prism/node.rb', line 2759 def accept(visitor) visitor.visit_call_target_node(self) end |
#attribute_write? ⇒ Boolean
def attribute_write?: () -> bool
2802 2803 2804 |
# File 'lib/prism/node.rb', line 2802 def attribute_write? flags.anybits?(CallNodeFlags::ATTRIBUTE_WRITE) end |
#call_operator ⇒ Object
def call_operator: () -> String
2832 2833 2834 |
# File 'lib/prism/node.rb', line 2832 def call_operator call_operator_loc.slice end |
#call_operator_loc ⇒ Object
attr_reader call_operator_loc: Location
2815 2816 2817 2818 2819 |
# File 'lib/prism/node.rb', line 2815 def call_operator_loc location = @call_operator_loc return location if location.is_a?(Location) @call_operator_loc = Location.new(source, location >> 32, location & 0xFFFFFFFF) end |
#child_nodes ⇒ Object Also known as: deconstruct
def child_nodes: () -> Array[nil | Node]
2764 2765 2766 |
# File 'lib/prism/node.rb', line 2764 def child_nodes [receiver] end |
#comment_targets ⇒ Object
def comment_targets: () -> Array[Node | Location]
2774 2775 2776 |
# File 'lib/prism/node.rb', line 2774 def comment_targets [receiver, call_operator_loc, ] #: Array[Prism::node | Location] end |
#compact_child_nodes ⇒ Object
def compact_child_nodes: () -> Array
2769 2770 2771 |
# File 'lib/prism/node.rb', line 2769 def compact_child_nodes [receiver] end |
#copy(node_id: self.node_id, location: self.location, flags: self.flags, receiver: self.receiver, call_operator_loc: self.call_operator_loc, name: self.name, message_loc: self.message_loc) ⇒ Object
def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?call_operator_loc: Location, ?name: Symbol, ?message_loc: Location) -> CallTargetNode
2779 2780 2781 |
# File 'lib/prism/node.rb', line 2779 def copy(node_id: self.node_id, location: self.location, flags: self.flags, receiver: self.receiver, call_operator_loc: self.call_operator_loc, name: self.name, message_loc: self.) CallTargetNode.new(source, node_id, location, flags, receiver, call_operator_loc, name, ) end |
#deconstruct_keys(keys) ⇒ Object
def deconstruct_keys: (Array keys) -> { node_id: Integer, location: Location, receiver: Prism::node, call_operator_loc: Location, name: Symbol, message_loc: Location }
2787 2788 2789 |
# File 'lib/prism/node.rb', line 2787 def deconstruct_keys(keys) { node_id: node_id, location: location, receiver: receiver, call_operator_loc: call_operator_loc, name: name, message_loc: } end |
#ignore_visibility? ⇒ Boolean
def ignore_visibility?: () -> bool
2807 2808 2809 |
# File 'lib/prism/node.rb', line 2807 def ignore_visibility? flags.anybits?(CallNodeFlags::IGNORE_VISIBILITY) end |
#inspect ⇒ Object
def inspect -> String
2842 2843 2844 |
# File 'lib/prism/node.rb', line 2842 def inspect InspectVisitor.compose(self) end |
#message ⇒ Object
def message: () -> String
2837 2838 2839 |
# File 'lib/prism/node.rb', line 2837 def .slice end |
#message_loc ⇒ Object
attr_reader message_loc: Location
2825 2826 2827 2828 2829 |
# File 'lib/prism/node.rb', line 2825 def location = return location if location.is_a?(Location) = Location.new(source, location >> 32, location & 0xFFFFFFFF) end |
#safe_navigation? ⇒ Boolean
def safe_navigation?: () -> bool
2792 2793 2794 |
# File 'lib/prism/node.rb', line 2792 def flags.anybits?(CallNodeFlags::SAFE_NAVIGATION) end |
#type ⇒ Object
Return a symbol representation of this node type. See ‘Node#type`.
2847 2848 2849 |
# File 'lib/prism/node.rb', line 2847 def type :call_target_node end |
#variable_call? ⇒ Boolean
def variable_call?: () -> bool
2797 2798 2799 |
# File 'lib/prism/node.rb', line 2797 def variable_call? flags.anybits?(CallNodeFlags::VARIABLE_CALL) end |