pm_call_node_t

Type Alias pm_call_node_t 

Source
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_node

The embedded base node.

§receiver: *mut pm_node

CallNode#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_t

CallNode#call_operator_loc

Represents the location of the call operator.

 foo.bar
    ^
 foo&.bar
    ^^
§name: u32

CallNode#name

Represents the name of the method being called.

 foo.bar # name `:foo`
 ^^^
§message_loc: pm_location_t

CallNode#message_loc

Represents the location of the message.

 foo.bar
     ^^^
§opening_loc: pm_location_t

CallNode#opening_loc

Represents the location of the left parenthesis. foo(bar) ^

§arguments: *mut pm_arguments_node

CallNode#arguments

Represents the arguments to the method call. These can be any non-void expressions.

 foo(bar)
     ^^^
§closing_loc: pm_location_t

CallNode#closing_loc

Represents the location of the right parenthesis.

 foo(bar)
        ^
§block: *mut pm_node

CallNode#block

Represents the block that is being passed to the method.

 foo { |a| a }
     ^^^^^^^^^