Skip to content

class Crystal::Macros::Def
inherits Crystal::Macros::ASTNode

A method definition.

Methods

#accepts_block? : BoolLiteral

Returns true if this method can be called with a block, false otherwise.

View source

#annotation(type : TypeNode) : Annotation | NilLiteral

Returns the last Annotation with the given type attached to this variable or NilLiteral if there are none.

View source

#annotations(type : TypeNode) : ArrayLiteral(Annotation)

Returns an array of annotations with the given type attached to this variable, or an empty ArrayLiteral if there are none.

View source

#args : ArrayLiteral(Arg)

Returns the arguments of this method.

View source

#block_arg : Arg | Nop

Returns the block argument, if any.

View source

#body : ASTNode

Returns the body of this method.

View source

#double_splat : Arg | Nop

Returns the double splat argument, if any.

View source

#name : MacroId

Returns the name of this method.

View source

#receiver : ASTNode | Nop

Returns the receiver (for example self) of this method definition, or Nop if not specified.

View source

#return_type : ASTNode | Nop

Returns the return type of the method, if specified.

View source

#splat_index : NumberLiteral | NilLiteral

Returns the index of the argument with a *splat, if any.

View source

#visibility : SymbolLiteral

Returns the visibility of this def: :public, :protected or :private.

View source