diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2012-11-16 10:18:43 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2012-11-16 10:51:02 +0100 |
commit | c1959cb6f6f30a52865c51c937e43de4dccfc817 (patch) | |
tree | f535f49ae9cd324f4e46d30a77557c92164ba3ae | |
parent | cc02a56c59639f0c0ab40f9d95b597eb913729d5 (diff) |
fix search result counting in IdentifierSearch
Multiple occurences of the same search result must not be counted.
Change-Id: I8200a3c6da425c3796591fe23234ddb2500da599
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
-rw-r--r-- | src/lib/language/identifiersearch.cpp | 2 | ||||
-rw-r--r-- | tests/auto/language/tst_language.cpp | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/language/identifiersearch.cpp b/src/lib/language/identifiersearch.cpp index 39c2ace35..04f3cb1a5 100644 --- a/src/lib/language/identifiersearch.cpp +++ b/src/lib/language/identifiersearch.cpp @@ -53,7 +53,7 @@ void IdentifierSearch::add(const QString &name, bool *found) bool IdentifierSearch::visit(QmlJS::AST::IdentifierExpression *e) { bool *found = m_requests.value(e->name.toString()); - if (found) { + if (found && !*found) { *found = true; m_numberOfFoundIds++; } diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp index 11572c50b..db675aeb9 100644 --- a/tests/auto/language/tst_language.cpp +++ b/tests/auto/language/tst_language.cpp @@ -224,6 +224,14 @@ void TestLanguage::identifierSearch_data() " return foo;\n" " }\n" "}\n"); + QTest::newRow("2 narfs, 1 zort") << true << true << QString( + "Product {\n" + " name: {\n" + " var foo = narf;\n" + " foo = narf + foo + zort;\n" + " return foo;\n" + " }\n" + "}\n"); } void TestLanguage::identifierSearch() |