diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 30e5005ac09..6c260687d86 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -966,8 +966,7 @@ void CPPEditor::markSymbols(Symbol *canonicalSymbol, const SemanticInfo &info) if (canonicalSymbol) { TranslationUnit *unit = info.doc->translationUnit(); - LookupContext context(info.doc, info.snapshot); // ### remove me - const QList references = m_modelManager->references(canonicalSymbol, context); + const QList references = m_modelManager->references(canonicalSymbol, info.context); foreach (int index, references) { unsigned line, column; unit->getTokenPosition(index, &line, &column); @@ -2055,6 +2054,7 @@ SemanticInfo SemanticHighlighter::semanticInfo(const Source &source) Document::Ptr doc; QList diagnosticMessages; QList typeUsages; + LookupContext context; if (! source.force && revision == source.revision) { m_mutex.lock(); @@ -2062,6 +2062,7 @@ SemanticInfo SemanticHighlighter::semanticInfo(const Source &source) doc = m_lastSemanticInfo.doc; diagnosticMessages = m_lastSemanticInfo.diagnosticMessages; typeUsages = m_lastSemanticInfo.typeUsages; + context = m_lastSemanticInfo.context; m_mutex.unlock(); } @@ -2072,7 +2073,7 @@ SemanticInfo SemanticHighlighter::semanticInfo(const Source &source) doc = snapshot.documentFromSource(preprocessedCode, source.fileName); doc->check(); - LookupContext context(doc, snapshot); + context = LookupContext(doc, snapshot); if (TranslationUnit *unit = doc->translationUnit()) { CheckUndefinedSymbols checkUndefinedSymbols(unit, context); @@ -2102,6 +2103,7 @@ SemanticInfo SemanticHighlighter::semanticInfo(const Source &source) semanticInfo.forced = source.force; semanticInfo.diagnosticMessages = diagnosticMessages; semanticInfo.typeUsages = typeUsages; + semanticInfo.context = context; return semanticInfo; } diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h index 3e94328cba9..b52d9e2d87c 100644 --- a/src/plugins/cppeditor/cppeditor.h +++ b/src/plugins/cppeditor/cppeditor.h @@ -33,6 +33,7 @@ #include "cppeditorenums.h" #include "cppquickfix.h" #include +#include #include #include @@ -86,8 +87,9 @@ public: bool hasQ: 1; bool hasD: 1; bool forced: 1; - CPlusPlus::Snapshot snapshot; - CPlusPlus::Document::Ptr doc; + CPlusPlus::Snapshot snapshot; // ### remove + CPlusPlus::Document::Ptr doc; // ### remove + CPlusPlus::LookupContext context; LocalUseMap localUses; // ### rename QList typeUsages; QList diagnosticMessages;