Commit 35901130 authored by Roberto Raggi's avatar Roberto Raggi
Browse files

Merge remote branch 'origin/1.3'

parents d208a3ac fa2eca82
#version check qt
contains(QT_VERSION, ^4\.[0-5]\..*) {
message("Cannot build Qt Creator with Qt version $$QT_VERSION.")
message("Cannot build Qt Creator with Qt version $${QT_VERSION}.")
error("Use at least Qt 4.6.")
}
......
......@@ -238,7 +238,7 @@ QString MatchingText::insertParagraphSeparator(const QTextCursor &tc) const
if (current.is(T_EOF_SYMBOL))
break;
else if (current.is(T_CLASS) || current.is(T_STRUCT) || current.is(T_UNION)) {
else if (current.is(T_CLASS) || current.is(T_STRUCT) || current.is(T_UNION) || current.is(T_ENUM)) {
// found a class key.
QString str = QLatin1String("};");
......
......@@ -442,6 +442,8 @@ bool Parser::parseTranslationUnit(TranslationUnitAST *&node)
rewind(start_declaration + 1);
skipUntilDeclaration();
}
_templateArgumentList.clear();
}
node = ast;
......@@ -569,6 +571,8 @@ bool Parser::parseLinkageBody(DeclarationAST *&node)
rewind(start_declaration + 1);
skipUntilDeclaration();
}
_templateArgumentList.clear();
}
match(T_RBRACE, &ast->rbrace_token);
node = ast;
......@@ -693,11 +697,9 @@ bool Parser::parseOperatorFunctionId(NameAST *&node)
Parser::TemplateArgumentListEntry *Parser::templateArgumentListEntry(unsigned tokenIndex)
{
for (unsigned i = 0; i < _templateArgumentList.size(); ++i) {
TemplateArgumentListEntry *entry = &_templateArgumentList[i];
if (entry->index == tokenIndex)
return entry;
}
std::map<unsigned, TemplateArgumentListEntry>::iterator it =_templateArgumentList.find(tokenIndex);
if (it != _templateArgumentList.end())
return &it->second;
return 0;
}
......@@ -729,11 +731,11 @@ bool Parser::parseTemplateArgumentList(TemplateArgumentListAST *&node)
}
}
_templateArgumentList.push_back(TemplateArgumentListEntry(start, cursor(), node));
_templateArgumentList.insert(std::make_pair(cursor(), TemplateArgumentListEntry(start, cursor(), node)));
return true;
}
_templateArgumentList.push_back(TemplateArgumentListEntry(start, cursor(), 0));
_templateArgumentList.insert(std::make_pair(cursor(), TemplateArgumentListEntry(start, cursor(), 0)));
return false;
}
......
......@@ -53,6 +53,7 @@
#include "ASTfwd.h"
#include "Token.h"
#include "TranslationUnit.h"
#include <map>
namespace CPlusPlus {
......@@ -308,7 +309,7 @@ private:
bool _inFunctionBody: 1;
bool _inObjCImplementationContext: 1;
Array<TemplateArgumentListEntry> _templateArgumentList;
std::map<unsigned, TemplateArgumentListEntry> _templateArgumentList;
class Rewind;
friend class Rewind;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment