diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp index 9dbaa457a7bf86ba7191d1f648ca05ea388bbaff..74f678b0e14d26f467c9f847e93a32865ebb8ef3 100644 --- a/src/libs/cplusplus/FindUsages.cpp +++ b/src/libs/cplusplus/FindUsages.cpp @@ -1830,7 +1830,7 @@ bool FindUsages::visit(QualifiedNameAST *ast) template_id = class_or_namespace_name->asTemplateId(); if (template_id) { - for (TemplateArgumentListAST *arg_it = template_id->template_argument_list; arg_it; arg_it = arg_it->next) { + for (ExpressionListAST *arg_it = template_id->template_argument_list; arg_it; arg_it = arg_it->next) { this->expression(arg_it->value); } } @@ -1863,7 +1863,7 @@ bool FindUsages::visit(QualifiedNameAST *ast) if (template_id) { identifier_token = template_id->identifier_token; - for (TemplateArgumentListAST *template_arguments = template_id->template_argument_list; + for (ExpressionListAST *template_arguments = template_id->template_argument_list; template_arguments; template_arguments = template_arguments->next) { this->expression(template_arguments->value); } diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h index 37dd5bb6909b909f3fbfd6a412ac1a8279a91f3e..227eb21483bc43cc7d2cf8bac4ca57052729804a 100644 --- a/src/shared/cplusplus/AST.h +++ b/src/shared/cplusplus/AST.h @@ -2216,7 +2216,7 @@ class CPLUSPLUS_EXPORT TemplateIdAST: public NameAST public: unsigned identifier_token; unsigned less_token; - TemplateArgumentListAST *template_argument_list; + ExpressionListAST *template_argument_list; unsigned greater_token; public: diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp index c5a522ebdb81b133118b233d8f9741e6c09f2527..996d4dbda5b3504f741f9a34ffc53739b5e7d37d 100644 --- a/src/shared/cplusplus/ASTClone.cpp +++ b/src/shared/cplusplus/ASTClone.cpp @@ -804,9 +804,9 @@ TemplateIdAST *TemplateIdAST::clone(MemoryPool *pool) const TemplateIdAST *ast = new (pool) TemplateIdAST; ast->identifier_token = identifier_token; ast->less_token = less_token; - for (TemplateArgumentListAST *iter = template_argument_list, **ast_iter = &ast->template_argument_list; + for (ExpressionListAST *iter = template_argument_list, **ast_iter = &ast->template_argument_list; iter; iter = iter->next, ast_iter = &(*ast_iter)->next) - *ast_iter = new (pool) TemplateArgumentListAST((iter->value) ? iter->value->clone(pool) : 0); + *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0); ast->greater_token = greater_token; return ast; } diff --git a/src/shared/cplusplus/ASTfwd.h b/src/shared/cplusplus/ASTfwd.h index cd434c05ef06e1a2c3661a9119c7cc916ebaf0d9..9812c824539691e7229c67d4be466af3ae538658 100644 --- a/src/shared/cplusplus/ASTfwd.h +++ b/src/shared/cplusplus/ASTfwd.h @@ -234,8 +234,6 @@ typedef List<ObjCPropertyAttributeAST *> ObjCPropertyAttributeListAST; typedef List<ObjCMessageArgumentDeclarationAST *> ObjCMessageArgumentDeclarationListAST; typedef List<ObjCSynthesizedPropertyAST *> ObjCSynthesizedPropertyListAST; -typedef ExpressionListAST TemplateArgumentListAST; - } // end of namespace CPlusPlus diff --git a/src/shared/cplusplus/CheckName.cpp b/src/shared/cplusplus/CheckName.cpp index c1a27b216603770408f67b9b04726a2c05ea82dd..4e67a6124c64f13666edef3ad03f77f013d4d5df 100644 --- a/src/shared/cplusplus/CheckName.cpp +++ b/src/shared/cplusplus/CheckName.cpp @@ -356,7 +356,7 @@ bool CheckName::visit(TemplateIdAST *ast) { const Identifier *id = identifier(ast->identifier_token); std::vector<FullySpecifiedType> templateArguments; - for (TemplateArgumentListAST *it = ast->template_argument_list; it; + for (ExpressionListAST *it = ast->template_argument_list; it; it = it->next) { ExpressionAST *arg = it->value; FullySpecifiedType exprTy = semantic()->check(arg, _scope); diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index c9a2aedca1ca8e2a2882195a6e0c137795cbca6c..b1bcd5905459b3a021a2e6f1302d99e37f0f1520 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -818,7 +818,7 @@ Parser::TemplateArgumentListEntry *Parser::templateArgumentListEntry(unsigned to return 0; } -bool Parser::parseTemplateArgumentList(TemplateArgumentListAST *&node) +bool Parser::parseTemplateArgumentList(ExpressionListAST *&node) { DEBUG_THIS_RULE(); @@ -830,10 +830,10 @@ bool Parser::parseTemplateArgumentList(TemplateArgumentListAST *&node) unsigned start = cursor(); - TemplateArgumentListAST **template_argument_ptr = &node; + ExpressionListAST **template_argument_ptr = &node; ExpressionAST *template_argument = 0; if (parseTemplateArgument(template_argument)) { - *template_argument_ptr = new (_pool) TemplateArgumentListAST; + *template_argument_ptr = new (_pool) ExpressionListAST; (*template_argument_ptr)->value = template_argument; template_argument_ptr = &(*template_argument_ptr)->next; @@ -844,7 +844,7 @@ bool Parser::parseTemplateArgumentList(TemplateArgumentListAST *&node) consumeToken(); // consume T_COMMA if (parseTemplateArgument(template_argument)) { - *template_argument_ptr = new (_pool) TemplateArgumentListAST; + *template_argument_ptr = new (_pool) ExpressionListAST; (*template_argument_ptr)->value = template_argument; template_argument_ptr = &(*template_argument_ptr)->next; @@ -855,10 +855,10 @@ bool Parser::parseTemplateArgumentList(TemplateArgumentListAST *&node) if (_pool != _translationUnit->memoryPool()) { MemoryPool *pool = _translationUnit->memoryPool(); - TemplateArgumentListAST *template_argument_list = node; - for (TemplateArgumentListAST *iter = template_argument_list, **ast_iter = &node; + ExpressionListAST *template_argument_list = node; + for (ExpressionListAST *iter = template_argument_list, **ast_iter = &node; iter; iter = iter->next, ast_iter = &(*ast_iter)->next) - *ast_iter = new (pool) TemplateArgumentListAST((iter->value) ? iter->value->clone(pool) : 0); + *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0); } _templateArgumentList.insert(std::make_pair(start, TemplateArgumentListEntry(start, cursor(), node))); @@ -4117,7 +4117,7 @@ bool Parser::parseNameId(NameAST *&name) else if (LA() == T_LPAREN) { // a template-id followed by a T_LPAREN - if (TemplateArgumentListAST *template_arguments = template_id->template_argument_list) { + if (ExpressionListAST *template_arguments = template_id->template_argument_list) { if (! template_arguments->next && template_arguments->value && template_arguments->value->asBinaryExpression()) { diff --git a/src/shared/cplusplus/Parser.h b/src/shared/cplusplus/Parser.h index ec8a74538b828b2006e1ac39c7a0d152396354f0..4b19f1cf10f4629e6db9dd6ab04a457412e6de02 100644 --- a/src/shared/cplusplus/Parser.h +++ b/src/shared/cplusplus/Parser.h @@ -184,7 +184,7 @@ public: bool parseStringLiteral(ExpressionAST *&node); bool parseSwitchStatement(StatementAST *&node); bool parseTemplateArgument(ExpressionAST *&node); - bool parseTemplateArgumentList(TemplateArgumentListAST *&node); + bool parseTemplateArgumentList(ExpressionListAST *&node); bool parseTemplateDeclaration(DeclarationAST *&node); bool parseTemplateParameter(DeclarationAST *&node); bool parseTemplateParameterList(DeclarationListAST *&node); @@ -319,9 +319,9 @@ public: struct TemplateArgumentListEntry { unsigned index; unsigned cursor; - TemplateArgumentListAST *ast; + ExpressionListAST *ast; - TemplateArgumentListEntry(unsigned index = 0, unsigned cursor = 0, TemplateArgumentListAST *ast = 0) + TemplateArgumentListEntry(unsigned index = 0, unsigned cursor = 0, ExpressionListAST *ast = 0) : index(index), cursor(cursor), ast(ast) {} };