class Crystal::Macros::TypeNode
Overview
Represents a type in the program, like Int32
or String
.
Defined in:
compiler/crystal/macros.crInstance Method Summary
-
#abstract? : BoolLiteral
Returns true if this type is abstract.
-
#class : TypeNode
Returns the class of this type.
-
#has_attribute?(name : StringLiteral | SymbolLiteral) : BoolLiteral
Returns true if this type has an attribute.
-
#has_constant?(name : StringLiteral | SymbolLiteral) : BoolLiteral
Returns true if this type has a constant.
-
#instance_vars : Crystal::Macros::ArrayLiteral(MetaVar)
Returns the instance variables of this type.
-
#methods : Array(Def)
Returns the instance methods defined by this type, without including inherited methods.
-
#name : MacroId
Returns the fully qualified name of this type.
-
#size : NumberLiteral
Returns the number of elements in this tuple type or tuple metaclass type.
-
#subclasses : Crystal::Macros::ArrayLiteral(MacroId)
Returns the constants and types defined by this type.
-
#superclass : TypeNode | NilLiteral
Returns the direct superclass of this type.
-
#type_vars : Crystal::Macros::ArrayLiteral(TypeNode)
Returns the type variables of the generic type.
-
#union? : BoolLiteral
Returns true if this type is a union type, false otherwise.
-
#union_types : Crystal::Macros::ArrayLiteral(TypeNode)
Returns the types comforming a union type, if this is a union type.
Instance methods inherited from class Crystal::Macros::ASTNode
!=(other : ASTNode) : BoolLiteral
!=,
==(other : ASTNode) : BoolLiteral
==,
class_name : StringLiteral
class_name,
id : MacroId
id,
raise(message) : NoReturn
raise,
stringify : StringLiteral
stringify
Instance methods inherited from class Reference
==(other)==(other : self) ==, hash hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, same?(other : Reference)
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Instance methods inherited from class Object
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other)===(other : YAML::Any)
===(other : JSON::Any) ===, =~(other) =~, class class, clone clone, crystal_type_id crystal_type_id, dup dup, hash hash, inspect
inspect(io : IO) inspect, itself itself, not_nil! not_nil!, tap(&block) tap, to_json to_json, to_pretty_json(io : IO)
to_pretty_json to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try
Class methods inherited from class Object
==(other : Class)
==,
===(other)
===,
cast(other) : self
cast,
from_json(string_or_io) : self
from_json,
from_yaml(string : String) : self
from_yaml,
hash
hash,
inspect(io)
inspect,
name : String
name,
to_s(io)
to_s,
|(other : U.class)
|
Instance Method Detail
Returns the class of this type. With this you can, for example, obtain class
methods by invoking type.class.methods
.
Returns true if this type has an attribute. For example @[Flags]
or @[Packed]
(the name you pass to this method is "Flags" or "Packed"
in these cases).
Returns true if this type has a constant. For example DEFAULT_OPTIONS
(the name you pass to this method is "DEFAULT_OPTIONS" or :DEFAULT_OPTIONS
in this cases).
Returns the instance variables of this type.
Returns the instance methods defined by this type, without including inherited methods.
Returns the number of elements in this tuple type or tuple metaclass type. Gives a compile error if this is not one of those types.
Returns the constants and types defined by this type.
Returns the type variables of the generic type. If the type is not generic, an empty array is returned.
Returns true if this type is a union type, false otherwise.
See also: #union_types
.
Returns the types comforming a union type, if this is a union type. Gives a compile error otherwise.
See also: #union?
.