From 7f7d87c68da4cb29b2b2b9c324c6863228da0c26 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 7 May 2019 12:47:33 +0200 Subject: Split CompiledData::CompilationUnit in two We need a CompilationUnit that only holds the data needed for compilation and another one that is executable by the runtime. Change-Id: I704d859ba028576a18460f5e3a59f210f64535d3 Reviewed-by: Simon Hausmann --- src/qmltest/quicktest.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/qmltest') diff --git a/src/qmltest/quicktest.cpp b/src/qmltest/quicktest.cpp index 9cddf61543..6aff7af0e7 100644 --- a/src/qmltest/quicktest.cpp +++ b/src/qmltest/quicktest.cpp @@ -70,6 +70,7 @@ #include #include +#include #ifdef QT_QMLTEST_WITH_WIDGETS #include @@ -290,7 +291,8 @@ public: m_errors += component.errors(); if (component.isReady()) { - QQmlRefPointer rootCompilationUnit = QQmlComponentPrivate::get(&component)->compilationUnit; + QQmlRefPointer rootCompilationUnit + = QQmlComponentPrivate::get(&component)->compilationUnit; TestCaseEnumerationResult result = enumerateTestCases(rootCompilationUnit.data()); m_testCases = result.testCases + result.finalizedPartialTestCases(); m_errors += result.errors; @@ -330,7 +332,8 @@ private: } }; - TestCaseEnumerationResult enumerateTestCases(CompilationUnit *compilationUnit, const Object *object = nullptr) + TestCaseEnumerationResult enumerateTestCases(QV4::ExecutableCompilationUnit *compilationUnit, + const Object *object = nullptr) { QQmlType testCaseType; for (quint32 i = 0, count = compilationUnit->importCount(); i < count; ++i) { @@ -353,7 +356,9 @@ private: if (!object) // Start at root of compilation unit if not enumerating a specific child object = compilationUnit->objectAt(0); - if (CompilationUnit *superTypeUnit = compilationUnit->resolvedTypes.value(object->inheritedTypeNameIndex)->compilationUnit.data()) { + if (QV4::ExecutableCompilationUnit *superTypeUnit + = compilationUnit->resolvedTypes.value(object->inheritedTypeNameIndex) + ->compilationUnit.data()) { // We have a non-C++ super type, which could indicate we're a subtype of a TestCase if (testCaseType.isValid() && superTypeUnit->url() == testCaseType.sourceUrl()) result.isTestCase = true; -- cgit v1.2.3