summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-08-16 11:35:38 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-08-16 11:35:38 +0200
commit2e0cb24cc99123af9ec01c7d6233ceb245fb5583 (patch)
tree61bee48d148031654444234b96ea7b4c48982f5c /src/shared/cplusplus
parentb81e3585c3546f451c16e4a690dbca7d63cc2794 (diff)
downloadqt-creator-2e0cb24cc99123af9ec01c7d6233ceb245fb5583.tar.gz
Create symbols for namespace-aliases.
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r--src/shared/cplusplus/Bind.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp
index 97d2f491d6..5fbfa7febc 100644
--- a/src/shared/cplusplus/Bind.cpp
+++ b/src/shared/cplusplus/Bind.cpp
@@ -1961,11 +1961,16 @@ bool Bind::visit(NamespaceAST *ast)
bool Bind::visit(NamespaceAliasDefinitionAST *ast)
{
- // unsigned namespace_token = ast->namespace_token;
- // unsigned namespace_name_token = ast->namespace_name_token;
- // unsigned equal_token = ast->equal_token;
- /*const Name *name =*/ this->name(ast->name);
- // unsigned semicolon_token = ast->semicolon_token;
+ unsigned sourceLocation = ast->firstToken();
+ const Name *name = 0;
+ if (ast->namespace_name_token) {
+ sourceLocation = ast->namespace_name_token;
+ name = control()->nameId(identifier(ast->namespace_name_token));
+ }
+
+ NamespaceAlias *namespaceAlias = control()->newNamespaceAlias(sourceLocation, name);
+ namespaceAlias->setNamespaceName(this->name(ast->name));
+ _scope->addMember(namespaceAlias);
return false;
}