summaryrefslogtreecommitdiff
path: root/src/plugins/autotest/quick/quicktestparser.cpp
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2017-03-16 07:41:25 +0100
committerChristian Stenger <christian.stenger@qt.io>2017-03-16 08:02:48 +0000
commit3d6b1089711227acc432c404729f8cb5a431d2cc (patch)
treecc7d8583c2e876ae17d388255e84a16d11a4769e /src/plugins/autotest/quick/quicktestparser.cpp
parent5c3fce7f974e7efa7e44288275afc38e99c725e3 (diff)
downloadqt-creator-3d6b1089711227acc432c404729f8cb5a431d2cc.tar.gz
AutoTest: Fix handling of subtyping TestCase again
We need a more present snapshot when inspecting the AST of QML files we need to process. Due to handling all problematic accesses inside the QmlJS model by guarding it with mutexes it is no problem even when parsing multi threaded. The former fix collided with another patch and therefore went in without fixing the issue. Task-number: QTCREATORBUG-17787 Change-Id: I460bae4b09cdc9a0cd38bc3383fd593c3abdfaad Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Diffstat (limited to 'src/plugins/autotest/quick/quicktestparser.cpp')
-rw-r--r--src/plugins/autotest/quick/quicktestparser.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/plugins/autotest/quick/quicktestparser.cpp b/src/plugins/autotest/quick/quicktestparser.cpp
index f6b7cf7817..c3440ce15d 100644
--- a/src/plugins/autotest/quick/quicktestparser.cpp
+++ b/src/plugins/autotest/quick/quicktestparser.cpp
@@ -165,7 +165,6 @@ static QList<QmlJS::Document::Ptr> scanDirectoryForQuickTestQmlFiles(const QStri
}
static bool checkQmlDocumentForQuickTestCode(QFutureInterface<TestParseResultPtr> futureInterface,
- const QmlJS::Snapshot &snapshot,
const QmlJS::Document::Ptr &qmlJSDoc,
const Core::Id &id,
const QString &proFile = QString())
@@ -174,6 +173,7 @@ static bool checkQmlDocumentForQuickTestCode(QFutureInterface<TestParseResultPtr
return false;
QmlJS::AST::Node *ast = qmlJSDoc->ast();
QTC_ASSERT(ast, return false);
+ QmlJS::Snapshot snapshot = QmlJS::ModelManagerInterface::instance()->snapshot();
TestQmlVisitor qmlVisitor(qmlJSDoc, snapshot);
QmlJS::AST::Node::accept(ast, &qmlVisitor);
if (!qmlVisitor.isValid())
@@ -212,7 +212,6 @@ static bool checkQmlDocumentForQuickTestCode(QFutureInterface<TestParseResultPtr
}
static bool handleQtQuickTest(QFutureInterface<TestParseResultPtr> futureInterface,
- const QmlJS::Snapshot &snapshot,
CPlusPlus::Document::Ptr document,
const Core::Id &id)
{
@@ -233,7 +232,7 @@ static bool handleQtQuickTest(QFutureInterface<TestParseResultPtr> futureInterfa
const QList<QmlJS::Document::Ptr> qmlDocs = scanDirectoryForQuickTestQmlFiles(srcDir);
bool result = false;
for (const QmlJS::Document::Ptr &qmlJSDoc : qmlDocs)
- result |= checkQmlDocumentForQuickTestCode(futureInterface, snapshot, qmlJSDoc, id, proFile);
+ result |= checkQmlDocumentForQuickTestCode(futureInterface, qmlJSDoc, id, proFile);
return result;
}
@@ -280,14 +279,14 @@ bool QuickTestParser::processDocument(QFutureInterface<TestParseResultPtr> futur
if (proFile.isEmpty())
return false;
QmlJS::Document::Ptr qmlJSDoc = m_qmlSnapshot.document(fileName);
- return checkQmlDocumentForQuickTestCode(futureInterface, m_qmlSnapshot, qmlJSDoc, id(), proFile);
+ return checkQmlDocumentForQuickTestCode(futureInterface, qmlJSDoc, id(), proFile);
}
if (!m_cppSnapshot.contains(fileName) || !selectedForBuilding(fileName))
return false;
CPlusPlus::Document::Ptr document = m_cppSnapshot.find(fileName).value();
if (!includesQtQuickTest(document, m_cppSnapshot))
return false;
- return handleQtQuickTest(futureInterface, m_qmlSnapshot, document, id());
+ return handleQtQuickTest(futureInterface, document, id());
}
} // namespace Internal