Skip to content

class Crystal::Macros::Path
inherits Crystal::Macros::ASTNode

A Path to a constant or type, like Foo or Foo::Bar::Baz.

Methods

#global? : BoolLiteral

Returns true if this is a global path (starts with ::)

View source

#names : ArrayLiteral(MacroId)

Returns an array with each separate part of this path.

View source

#resolve : ASTNode

Resolves this path to a TypeNode if it denotes a type, to the value of a constant if it denotes a constant, or otherwise gives a compile-time error.

View source

#resolve? : ASTNode | NilLiteral

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

View source

#types : ArrayLiteral(ASTNode)

Returns this path 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.

View source