aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2012-11-16 10:18:43 +0100
committerChristian Kandeler <christian.kandeler@digia.com>2012-11-16 10:51:02 +0100
commitc1959cb6f6f30a52865c51c937e43de4dccfc817 (patch)
treef535f49ae9cd324f4e46d30a77557c92164ba3ae
parentcc02a56c59639f0c0ab40f9d95b597eb913729d5 (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.cpp2
-rw-r--r--tests/auto/language/tst_language.cpp8
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()