class
   Crystal::Macros::Def
  
  
  Overview
A method definition.
Defined in:
compiler/crystal/macros.crInstance Method Summary
- 
        #abstract? : BoolLiteral
        
          Returns trueis this method is declared as abstract,falseotherwise.
- 
        #accepts_block? : BoolLiteral
        
          Returns trueif this method can be called with a block,falseotherwise.
- 
        #annotation(type : TypeNode) : Annotation | NilLiteral
        
          Returns the last Annotationwith the giventypeattached to this method orNilLiteralif there are none.
- 
        #annotations(type : TypeNode) : ArrayLiteral(Annotation)
        
          Returns an array of annotations with the given typeattached to this method, or an emptyArrayLiteralif there are none.
- 
        #annotations : ArrayLiteral(Annotation)
        
          Returns an array of all annotations attached to this method, or an empty ArrayLiteralif there are none.
- 
        #args : ArrayLiteral(Arg)
        
          Returns the arguments of this method. 
- 
        #block_arg : Arg | Nop
        
          Returns the block argument, if any. 
- 
        #body : ASTNode
        
          Returns the body of this method. 
- 
        #double_splat : Arg | Nop
        
          Returns the double splat argument, if any. 
- 
        #free_vars : ArrayLiteral(MacroId)
        
          Returns the free variables of this method, or an empty ArrayLiteralif there are none.
- 
        #name : MacroId
        
          Returns the name of this method. 
- 
        #receiver : ASTNode | Nop
        
          Returns the receiver (for example self) of this method definition, orNopif not specified.
- 
        #return_type : ASTNode | Nop
        
          Returns the return type of the method, if specified. 
- 
        #splat_index : NumberLiteral | NilLiteral
        
          Returns the index of the argument with a *splat, if any. 
- 
        #visibility : SymbolLiteral
        
          Returns the visibility of this def: :public,:protectedor:private.
Instance methods inherited from class Crystal::Macros::ASTNode
  
  
    
      !=(other : ASTNode) : BoolLiteral
    !=, 
    
  
    
      ==(other : ASTNode) : BoolLiteral
    ==, 
    
  
    
      class_name : StringLiteral
    class_name, 
    
  
    
      column_number : StringLiteral | NilLiteral
    column_number, 
    
  
    
      doc : StringLiteral
    doc, 
    
  
    
      doc_comment : MacroId
    doc_comment, 
    
  
    
      end_column_number : StringLiteral | NilLiteral
    end_column_number, 
    
  
    
      end_line_number : StringLiteral | NilLiteral
    end_line_number, 
    
  
    
      filename : StringLiteral | NilLiteral
    filename, 
    
  
    
      id : MacroId
    id, 
    
  
    
      is_a?(type : TypeNode) : BoolLiteral
    is_a?, 
    
  
    
      line_number : StringLiteral | NilLiteral
    line_number, 
    
  
    
      nil? : BoolLiteral
    nil?, 
    
  
    
      raise(message) : NoReturn
    raise, 
    
  
    
      stringify : StringLiteral
    stringify, 
    
  
    
      symbolize : SymbolLiteral
    symbolize, 
    
  
    
      warning(message : StringLiteral) : NilLiteral
    warning
    
  
      
      
      
    
  Instance Method Detail
Returns true if this method can be called with a block, false otherwise.
Returns the last Annotation with the given type
attached to this method or NilLiteral if there are none.
Returns an array of annotations with the given type
attached to this method, or an empty ArrayLiteral if there are none.
Returns an array of all annotations attached to this
method, or an empty ArrayLiteral if there are none.
Returns the index of the argument with a *splat, if any.
Returns the visibility of this def: :public, :protected or :private.