7 #include <hilti/ast/ast-context.h>
8 #include <hilti/ast/declaration.h>
9 #include <hilti/ast/expression.h>
10 #include <hilti/ast/id.h>
11 #include <hilti/ast/type.h>
13 namespace hilti::expression {
19 const auto&
id()
const {
return _id; }
26 if ( ! _resolved_declaration_index )
29 return context()->
lookup(_resolved_declaration_index);
56 if ( ! _resolved_declaration_index )
66 void setID(
ID id) { _id = std::move(
id); }
79 : Expression(ctx, NodeTags, std::move(
children), std::move(
meta)), _id(std::move(
id)), _context(ctx) {}
81 ASTContext* context()
const {
return _context; }
83 HILTI_NODE_1(expression::Name, Expression,
final);
88 ast::DeclarationIndex _resolved_declaration_index;
Definition: ast-context.h:128
Declaration * lookup(ast::DeclarationIndex index)
Definition: ast-context.cc:497
Definition: declaration.h:53
Definition: expression.h:15
void addChild(ASTContext *ctx, Node *n)
Definition: node.h:551
const auto & children() const
Definition: node.h:382
const auto & meta() const
Definition: node.h:324
void clearChildren()
Definition: node.cc:141
static QualifiedType * createAuto(ASTContext *ctx, const Meta &m=Meta())
Definition: type.cc:134
static const ContextIndex None
Definition: ast-context.h:88
auto resolvedDeclarationIndex() const
Definition: name.h:33
void clearResolvedDeclarationIndex(ASTContext *ctx)
Definition: name.h:55
void setID(ID id)
Definition: name.h:66
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:19
node::Properties properties() const final
Definition: name.cc:56
Declaration * resolvedDeclaration() const
Definition: name.h:25
const auto & fullyQualifiedID() const
Definition: name.h:22
void setFullyQualifiedID(ID id)
Definition: name.h:69