class Crystal::Macros::Generic

Overview

A generic instantiation, like Foo(T) or Foo::Bar::Baz(T)

Defined in:

compiler/crystal/macros.cr

Instance Method Summary

Instance Method Detail

def name : PathSource

Returns the path to the generic.

def named_args : NamedTupleLiteral | NilLiteralSource

Returns the named arguments of this instantiation, if any.

def resolve : ASTNodeSource

Resolves this generic to a TypeNode if it denotes a type, or otherwise gives a compile-time error.

def resolve? : ASTNode | NilLiteralSource

Resolves this path to a TypeNode if it denotes a type, or otherwise returns a NilLiteral.

def type_vars : ArrayLiteral(ASTNode)Source

Returns the arguments (the type variables) of this instantiation.

def types : ArrayLiteral(ASTNode)Source

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.

© 2012–2021 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/1.2.1/Crystal/Macros/Generic.html