aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/cplusplus/FastPreprocessor.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2012-10-11 16:16:01 +0200
committerErik Verbruggen <erik.verbruggen@digia.com>2012-10-15 10:58:07 +0200
commitf3faef5a1e345b02dfca0b8c682e5e36e318849f (patch)
tree747ecc0a7a6b9d574ceff130767f386ee80b4a76 /src/libs/cplusplus/FastPreprocessor.h
parent199b243bca769049095b72bf5af7e95add1ecff6 (diff)
C++: Fix outdated macro usage info in documents.
Record revisions of documents in macro definitions and usages. Then, when searching for usages, check the revision of the documents against the revision of the macros. If they are out-of-sync, repreprocess the documents to get up-to-date info. Task-number: QTCREATORBUG-7872 Change-Id: I846bb52ec660024728ab117a9fb7e43382a50e63 Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Diffstat (limited to 'src/libs/cplusplus/FastPreprocessor.h')
-rw-r--r--src/libs/cplusplus/FastPreprocessor.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/libs/cplusplus/FastPreprocessor.h b/src/libs/cplusplus/FastPreprocessor.h
index 5aed578ff0c..14168ad2e6b 100644
--- a/src/libs/cplusplus/FastPreprocessor.h
+++ b/src/libs/cplusplus/FastPreprocessor.h
@@ -47,28 +47,29 @@ class CPLUSPLUS_EXPORT FastPreprocessor: public Client
Snapshot _snapshot;
Preprocessor _preproc;
QSet<QString> _merged;
+ Document::Ptr _currentDoc;
void mergeEnvironment(const QString &fileName);
public:
FastPreprocessor(const Snapshot &snapshot);
- QByteArray run(QString fileName, const QString &source);
+ QByteArray run(Document::Ptr newDoc, const QString &source);
// CPlusPlus::Client
- virtual void sourceNeeded(unsigned, QString &fileName, IncludeType);
+ virtual void sourceNeeded(unsigned line, QString &fileName, IncludeType);
- virtual void macroAdded(const Macro &) {}
+ virtual void macroAdded(const Macro &);
- virtual void passedMacroDefinitionCheck(unsigned, unsigned, const Macro &) {}
- virtual void failedMacroDefinitionCheck(unsigned, const ByteArrayRef &) {}
+ virtual void passedMacroDefinitionCheck(unsigned, unsigned, const Macro &);
+ virtual void failedMacroDefinitionCheck(unsigned, const ByteArrayRef &);
- virtual void notifyMacroReference(unsigned, unsigned, const Macro &) {}
+ virtual void notifyMacroReference(unsigned, unsigned, const Macro &);
virtual void startExpandingMacro(unsigned,
unsigned,
const Macro &,
- const QVector<MacroArgumentReference> &) {}
+ const QVector<MacroArgumentReference> &);
virtual void stopExpandingMacro(unsigned, const Macro &) {}
virtual void startSkippingBlocks(unsigned) {}