aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
diff options
context:
space:
mode:
authorOlivier De Cannière <olivier.decanniere@qt.io>2024-01-22 14:44:27 +0100
committerOlivier De Cannière <olivier.decanniere@qt.io>2024-01-29 17:02:28 +0100
commit3672a173df7a518ff375dcd5931a1ce5255d4115 (patch)
treec1e8bddbadddf2ddc6b01e7cc6b30f932f4bf776 /tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
parentc61525f3aaa59f8de2e9b090c25ba739f097cec0 (diff)
Compiler: Don't crash on optional lookups on QJSValue base type
Handle the case where the base type of the lookup is QJSValue so that we don't hit the assert. However, it should not be possible to get a QJSValue there at all. This should be investigated further. Created QTBUG-121662. Pick-to: 6.7 Fixes: QTBUG-121393 Change-Id: I8bea87cbff74119bb977635ec391601f47269ff0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp')
-rw-r--r--tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
index 2fc5129230..88c4e2375f 100644
--- a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
+++ b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
@@ -112,6 +112,7 @@ private slots:
void functionTakingVar();
void getOptionalLookup();
void getOptionalLookup_data();
+ void getOptionalLookupOnQJSValueNonStrict();
void globals();
void idAccess();
void ignoredFunctionReturn();
@@ -2112,6 +2113,18 @@ void tst_QmlCppCodegen::getOptionalLookup()
QCOMPARE(actual, expected);
}
+void tst_QmlCppCodegen::getOptionalLookupOnQJSValueNonStrict()
+{
+ QQmlEngine engine;
+ const QUrl document(u"qrc:/qt/qml/TestTypes/GetOptionalLookupOnQJSValueNonStrict.qml"_s);
+ QQmlComponent c(&engine, document);
+ QVERIFY2(c.isReady(), qPrintable(c.errorString()));
+ QScopedPointer<QObject> o(c.create());
+ QVERIFY(o);
+
+ QVERIFY(o->property("b").toBool());
+}
+
void tst_QmlCppCodegen::globals()
{
QQmlEngine engine;