diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2022-06-13 09:25:40 +0200 |
|---|---|---|
| committer | Ulf Hermann <ulf.hermann@qt.io> | 2022-06-15 09:43:01 +0200 |
| commit | e18919d3f24f359a720a2a4daca322cfce3c68fd (patch) | |
| tree | d36911c95207ae05904a32bc384c65e88c51f036 /tests/auto/qml/qmlcppcodegen | |
| parent | fb3a81623a3d39289d508f504bb0308be443ce50 (diff) | |
QmlCompiler: Check builtin type aliases after list resolution
This way we can determine that QList<qreal> is the same as
QList<double>.
Pick-to: 6.4
Fixes: QTBUG-104129
Change-Id: I96df19da1a613558b950aa6cee46159024c19cc9
Reviewed-by: Evgeniy Dushistov <dushistov@mail.ru>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Diffstat (limited to 'tests/auto/qml/qmlcppcodegen')
| -rw-r--r-- | tests/auto/qml/qmlcppcodegen/data/Test.qml | 6 | ||||
| -rw-r--r-- | tests/auto/qml/qmlcppcodegen/data/cppbaseclass.h | 5 | ||||
| -rw-r--r-- | tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp | 4 |
3 files changed, 15 insertions, 0 deletions
diff --git a/tests/auto/qml/qmlcppcodegen/data/Test.qml b/tests/auto/qml/qmlcppcodegen/data/Test.qml index 391360face..65c25aa100 100644 --- a/tests/auto/qml/qmlcppcodegen/data/Test.qml +++ b/tests/auto/qml/qmlcppcodegen/data/Test.qml @@ -21,4 +21,10 @@ CppBaseClass { function incA() : void { self.a = self.boo[1]; } + + property real b: hoo[0] + function incB() : void { + self.b = self.hoo[1]; + } + } diff --git a/tests/auto/qml/qmlcppcodegen/data/cppbaseclass.h b/tests/auto/qml/qmlcppcodegen/data/cppbaseclass.h index 1a938fb82a..416a61defc 100644 --- a/tests/auto/qml/qmlcppcodegen/data/cppbaseclass.h +++ b/tests/auto/qml/qmlcppcodegen/data/cppbaseclass.h @@ -14,6 +14,7 @@ class CppBaseClass : public QObject Q_PROPERTY(int cppProp MEMBER cppProp BINDABLE cppPropBindable FINAL) Q_PROPERTY(int cppProp2 MEMBER cppProp2 BINDABLE cppProp2Bindable FINAL) Q_PROPERTY(QList<int> boo MEMBER boo FINAL CONSTANT) + Q_PROPERTY(QList<qreal> hoo MEMBER hoo FINAL CONSTANT) QML_ELEMENT public: CppBaseClass(QObject *parent = nullptr) @@ -21,6 +22,9 @@ public: { boo.append(16); boo.append(17); + + hoo.append(0.25); + hoo.append(13.5); } QProperty<int> cppProp; @@ -33,6 +37,7 @@ public: private: QList<int> boo; + QList<qreal> hoo; }; inline void CppBaseClass::doCall(QObject *foo) diff --git a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp index bbf4b4691f..45dfcfd02e 100644 --- a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp +++ b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp @@ -153,6 +153,10 @@ void tst_QmlCppCodegen::cppValueTypeList() QCOMPARE(object->property("a").toInt(), 16); QMetaObject::invokeMethod(object.data(), "incA"); QCOMPARE(object->property("a").toInt(), 17); + + QCOMPARE(object->property("b").toDouble(), 0.25); + QMetaObject::invokeMethod(object.data(), "incB"); + QCOMPARE(object->property("b").toDouble(), 13.5); } void tst_QmlCppCodegen::anchorsFill() |
