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.