class Crystal::Macros::ClassDef
  
  
  Overview
A class definition.
Every class definition node is equivalent to:
{% begin %}
  {% "abstract".id if node.abstract? %} {{ node.kind }} {{ node.name }} {% if superclass = node.superclass %}< {{ superclass }}{% end %}
    {{ node.body }}
  end
{% end %}Defined in:
compiler/crystal/macros.crInstance Method Summary
- 
        #abstract? : BoolLiteral
        
          Returns whether this node defines an abstract class or struct. 
- 
        #body : ASTNode
        
          Returns the body of this type definition. 
- 
        #kind : MacroId
        
          Returns the keyword used to define this type. 
- 
        #name(*, generic_args : BoolLiteral = true) : Path | Generic
        
          Returns the name of this type definition. 
- 
        #splat_index : NumberLiteral | NilLiteral
        
          Returns the splat index of this type definition's generic type parameters. 
- 
        #struct? : BoolLiteral
        
          Returns trueif this node defines a struct,falseif this node defines a class.
- 
        #superclass : ASTNode
        
          Returns the superclass of this type definition, or a Nopif one isn't specified.
- 
        #type_vars : ArrayLiteral
        
          Returns an array of MacroIds of this type definition's generic type parameters.
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 the keyword used to define this type.
For ClassDef this is either class or struct.
Returns the name of this type definition.
If this node defines a generic type, and generic_args is true, returns a
Generic whose type arguments are MacroIds, possibly with a Splat at
the splat index. Otherwise, this method returns a Path.
Returns the splat index of this type definition's generic type parameters.
Returns nil if this type definition isn't generic or if there isn't a
splat parameter.
Returns true if this node defines a struct, false if this node defines
a class.
Returns the superclass of this type definition, or a Nop if one isn't
specified.
Returns an array of MacroIds of this type definition's generic type
parameters.
On a non-generic type definition, returns an empty array.