pub type pm_call_node_t = pm_call_node;Expand description
CallNode
Represents a method call, in all of the various forms that can take.
foo
^^^ foo()
^^^^^ +foo
^^^^ foo + bar
^^^^^^^^^ foo.bar
^^^^^^^ foo&.bar
^^^^^^^^Type: ::PM_CALL_NODE
Flags (#pm_call_node_flags):
- ::PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
- ::PM_CALL_NODE_FLAGS_VARIABLE_CALL
- ::PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
- ::PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
@extends pm_node_t
Aliased Type§
#[repr(C)]pub struct pm_call_node_t {
pub base: pm_node,
pub receiver: *mut pm_node,
pub call_operator_loc: pm_location_t,
pub name: u32,
pub message_loc: pm_location_t,
pub opening_loc: pm_location_t,
pub arguments: *mut pm_arguments_node,
pub closing_loc: pm_location_t,
pub block: *mut pm_node,
}Fields§
§base: pm_nodeThe embedded base node.
receiver: *mut pm_nodeCallNode#receiver
The object that the method is being called on. This can be either nil or any non-void expression.
foo.bar
^^^ +foo
^^^ foo + bar
^^^call_operator_loc: pm_location_tCallNode#call_operator_loc
Represents the location of the call operator.
foo.bar
^ foo&.bar
^^name: u32CallNode#name
Represents the name of the method being called.
foo.bar # name `:foo`
^^^message_loc: pm_location_tCallNode#message_loc
Represents the location of the message.
foo.bar
^^^opening_loc: pm_location_tCallNode#opening_loc
Represents the location of the left parenthesis. foo(bar) ^
arguments: *mut pm_arguments_nodeCallNode#arguments
Represents the arguments to the method call. These can be any non-void expressions.
foo(bar)
^^^closing_loc: pm_location_tCallNode#closing_loc
Represents the location of the right parenthesis.
foo(bar)
^block: *mut pm_nodeCallNode#block
Represents the block that is being passed to the method.
foo { |a| a }
^^^^^^^^^