diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h index ecb0ddc3fb9b46a334c269bf680b270f9aeaed46..0b957ede81747b9142fd1026e731c4b64cbcf012 100644 --- a/src/shared/cplusplus/AST.h +++ b/src/shared/cplusplus/AST.h @@ -1194,6 +1194,9 @@ public: SpecifierAST *attributes; DeclarationAST *linkage_body; +public: // annotations + Namespace *namespace_symbol; + public: virtual unsigned firstToken() const; virtual unsigned lastToken() const; diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp index 610d57626f43849816ee078788eb0c0dcc58d2f2..48e6cd40fa21f0a4964949cc4eabf979868ebb05 100644 --- a/src/shared/cplusplus/CheckDeclaration.cpp +++ b/src/shared/cplusplus/CheckDeclaration.cpp @@ -286,6 +286,7 @@ bool CheckDeclaration::visit(NamespaceAST *ast) Identifier *id = identifier(ast->identifier_token); Name *namespaceName = control()->nameId(id); Namespace *ns = control()->newNamespace(ast->firstToken(), namespaceName); + ast->namespace_symbol = ns; _scope->enterSymbol(ns); semantic()->check(ast->linkage_body, ns->members()); // ### we'll do the merge later.