diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2014-06-02 16:06:26 -0400 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2014-06-03 14:54:17 +0200 |
commit | ff1203de9ec11fb70792bd601fa4c56f6ae85447 (patch) | |
tree | 49fdbefe0df16f0fb323ec6d37768d50393b8af4 /src/plugins/cpptools/cpppreprocessor_test.cpp | |
parent | c7f0c4a743056ff553e727844f2ec8abd2711380 (diff) | |
download | qt-creator-ff1203de9ec11fb70792bd601fa4c56f6ae85447.tar.gz |
C++: Fix Macrouse::utf16charsBegin()
This caused displaced highlighting of macro uses after #if constructs.
MacroUse::utf16charBegin() was based on the last "continuation token",
which was wrong.
Change-Id: I89983d82fcf804ba853c04a59a7533c489785d05
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cpppreprocessor_test.cpp')
-rw-r--r-- | src/plugins/cpptools/cpppreprocessor_test.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cpppreprocessor_test.cpp b/src/plugins/cpptools/cpppreprocessor_test.cpp index 61a6c4a7b5..398c694687 100644 --- a/src/plugins/cpptools/cpppreprocessor_test.cpp +++ b/src/plugins/cpptools/cpppreprocessor_test.cpp @@ -180,3 +180,25 @@ void CppToolsPlugin::test_cpppreprocessor_includes_allDiagnostics() QCOMPARE(document->unresolvedIncludes().size(), 3); QCOMPARE(document->diagnosticMessages().size(), 3); } + +void CppToolsPlugin::test_cpppreprocessor_macroUses() +{ + QByteArray source = + "#define SOMEDEFINE 1\n" + "#if SOMEDEFINE == 1\n" + " int someNumber;\n" + "#endif\n" + ; + + SourcePreprocessor processor; + Document::Ptr document = processor.run(source); + QVERIFY(document); + const QList<Document::MacroUse> macroUses = document->macroUses(); + QCOMPARE(macroUses.size(), 1); + const Document::MacroUse macroUse = macroUses.at(0); + QCOMPARE(macroUse.bytesBegin(), 25U); + QCOMPARE(macroUse.bytesEnd(), 35U); + QCOMPARE(macroUse.utf16charsBegin(), 25U); + QCOMPARE(macroUse.utf16charsEnd(), 35U); + QCOMPARE(macroUse.beginLine(), 2U); +} |