class

Myst::Call

Inherits Myst::Node / Reference / Object

A method call. Calls are the building block of functionality. Any operation not expressed by a distinct node is considered a Call. For example, a + b is a call to the method + on a with b as an argument, obj.member is a call to the method member on obj, etc. Additionally, any identifier that is not known to be a local variable (created by a SimpleAssign or MatchAssign) is considered a Call.

[ receiver '.' ] name [ block ] | [ receiver '.' ] name '(' [ arg [ ',' arg ]* ] ')' [ block ] | expression '(' [ arg [ ',' arg ]* ] ')' [ block ] | arg operator arg

Any expression can be forced into a Call by adding parentheses as a suffix. Complex expressions will require parentheses around the expression to avoid ambiguity. This is the third form shown above.

The last form is for infix operations, such as a + b shown above, where operator would be the +.

Constructors

new(receiver : Myst::Node | Nil, name : Myst::Node | String, args : Array(Myst::Node) = [] of Node, block : Myst::Node | Nil = nil, infix : Bool = false)
Source

Instance methods

==(other : self)

Returns true if this reference is the same as other. Invokes same?.

accept_children(visitor)
Source
args
Source
args=(args : Array(Node))
Source
block
Source
block=(block : Block | FunctionCapture | Nil)
Source
block?
Source
hash(hasher)

See Object#hash(hasher)

infix=(infix : Bool)
Source
infix?
Source
name
Source
name=(name : String | Node)
Source
receiver
Source
receiver=(receiver : Node | Nil)
Source
receiver?
Source