9 #include <hilti/ast/ast-context.h>
10 #include <hilti/ast/declaration.h>
11 #include <hilti/ast/expression.h>
12 #include <hilti/ast/id.h>
13 #include <hilti/ast/type.h>
15 namespace hilti::expression {
21 const auto&
id()
const {
return _id; }
28 if ( ! _resolved_declaration_index )
31 return context()->
lookup(_resolved_declaration_index);
58 if ( ! _resolved_declaration_index )
68 void setID(
ID id) { _id = std::move(
id); }
81 : Expression(ctx, NodeTags, std::move(
children), std::move(
meta)), _id(std::move(
id)), _context(ctx) {}
83 ASTContext* context()
const {
return _context; }
85 HILTI_NODE_1(expression::Name, Expression,
final);
90 ast::DeclarationIndex _resolved_declaration_index;
Definition: ast-context.h:121
Declaration * lookup(ast::DeclarationIndex index)
Definition: ast-context.cc:462
Definition: declaration.h:48
Definition: expression.h:15
void addChild(ASTContext *ctx, Node *n)
Definition: node.h:522
const auto & children() const
Definition: node.h:364
const auto & meta() const
Definition: node.h:306
void clearChildren()
Definition: node.cc:131
static QualifiedType * createAuto(ASTContext *ctx, const Meta &m=Meta())
Definition: type.cc:121
static const ContextIndex None
Definition: ast-context.h:84
auto resolvedDeclarationIndex() const
Definition: name.h:35
void clearResolvedDeclarationIndex(ASTContext *ctx)
Definition: name.h:57
void setID(ID id)
Definition: name.h:68
void setResolvedDeclarationIndex(ASTContext *ctx, ast::DeclarationIndex index)
Definition: name.cc:39
QualifiedType * type() const final
Definition: name.cc:10
const auto & id() const
Definition: name.h:21
node::Properties properties() const final
Definition: name.cc:54
const auto & fullyQualifiedID() const
Definition: name.h:24
void setFullyQualifiedID(ID id)
Definition: name.h:71
Declaration * resolvedDeclaration()
Definition: name.h:27