aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/TranslationUnit.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2014-11-19 12:07:29 +0100
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2014-11-19 16:10:56 +0100
commitbeac7b9539457fe721de1709b9a406cac2379851 (patch)
tree49d8d0ff08d024566f163228dfb317636019c88c /src/libs/3rdparty/cplusplus/TranslationUnit.cpp
parent687fda833a3088d45c0c1f9a38c7594eecaee254 (diff)
C++: Fix highlighting after "invalid code"
For the semantic info document we do not expand function like macros and because of that certain macro invocations lead to invalid code that we need to handle, e.g.: Q_GLOBAL_STATIC(CppTools::SymbolFinder, symbolFinder) class Foo {}; This change makes parsing Foo in the semantic info document successfully again, which affects highlighting of that class. Change-Id: I389265ac64d3f0b8b8f406d38fa58d78820b14ba Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/TranslationUnit.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/TranslationUnit.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libs/3rdparty/cplusplus/TranslationUnit.cpp b/src/libs/3rdparty/cplusplus/TranslationUnit.cpp
index ace6eda549..86eb25f1e3 100644
--- a/src/libs/3rdparty/cplusplus/TranslationUnit.cpp
+++ b/src/libs/3rdparty/cplusplus/TranslationUnit.cpp
@@ -49,7 +49,8 @@ TranslationUnit::TranslationUnit(Control *control, const StringLiteral *fileId)
_lastSourceChar(0),
_pool(0),
_ast(0),
- _flags(0)
+ _flags(0),
+ _retryParseDeclarationLimit(defaultRetryParseDeclarationLimit())
{
_tokens = new std::vector<Token>();
_comments = new std::vector<Token>();
@@ -299,7 +300,7 @@ bool TranslationUnit::parse(ParseMode mode)
f._parsed = true;
- Parser parser(this);
+ Parser parser(this, _retryParseDeclarationLimit);
bool parsed = false;
switch (mode) {