class Crystal::Macros::Generic
Overview
A generic instantiation, like Foo(T)
or Foo::Bar::Baz(T)
Defined in:
compiler/crystal/macros.crInstance Method Summary
-
#name : Path
Returns the path to the generic.
-
#named_args : NamedTupleLiteral | NilLiteral
Returns the named arguments of this instantiation, if any.
-
#resolve : ASTNode
Resolves this generic to a
TypeNode
if it denotes a type, or otherwise gives a compile-time error. -
#resolve? : ASTNode | NilLiteral
Resolves this path to a
TypeNode
if it denotes a type, or otherwise returns aNilLiteral
. -
#type_vars : ArrayLiteral(ASTNode)
Returns the arguments (the type variables) of this instantiation.
-
#types : ArrayLiteral(ASTNode)
Returns this generic inside an array literal.
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 named arguments of this instantiation, if any.
Returns the arguments (the type variables) of this instantiation.
Returns this generic inside an array literal.
This method exists so you can call #types
on the type of a type
declaration and get all types, whether it's a Generic, Path or Union.