diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-13 10:35:33 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-13 10:35:33 +0200 |
commit | 89dba0e57bfe375ad9945de6d99e0fc89c68ce06 (patch) | |
tree | 123d414d9555ad254ed8444e967ec26fc898cc96 /src/shared/cplusplus | |
parent | 51645710b0ff002ef675f5e8f90296a0a2f97a93 (diff) | |
download | qt-creator-89dba0e57bfe375ad9945de6d99e0fc89c68ce06.tar.gz |
Create symbols for the formal arguments.
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/Bind.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp index 762922dc56..74ae70c839 100644 --- a/src/shared/cplusplus/Bind.cpp +++ b/src/shared/cplusplus/Bind.cpp @@ -1684,7 +1684,21 @@ bool Bind::visit(ParameterDeclarationAST *ast) type = this->declarator(ast->declarator, type, &declaratorId); // unsigned equal_token = ast->equal_token; ExpressionTy expression = this->expression(ast->expression); - // Argument *symbol = ast->symbol; + + unsigned sourceLocation = ast->firstToken(); + if (declaratorId) + sourceLocation = declaratorId->firstToken(); + + const Name *argName = 0; + if (declaratorId && declaratorId->name) + argName = declaratorId->name->name; + + Argument *arg = control()->newArgument(sourceLocation, argName); + arg->setType(type); + + _scope->addMember(arg); + + ast->symbol = arg; return false; } |