Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
6.5.3, 6.6.0
-
None
-
8d7f18ec4 (dev), 826346435 (dev), 84d950bc3 (dev), 852067de0 (6.6), 06c3f86d2 (tqtc/lts-6.5)
Description
Running with Qml debugger (assuming this uses the bytecode representation):
2023-11-15 13:57:29.852454+0100 appuntitled3[66173:6512588] QML Debugger: Waiting for connection on port 62665... 2023-11-15 13:57:31.103805+0100 appuntitled3[66173:6512504] qrc:/untitled3/Main.qml:18:5: QML Foo: Binding loop detected for property "bar" 2023-11-15 13:57:31.103910+0100 appuntitled3[66173:6512504] [qml] BAR null 2023-11-15 13:57:31.103967+0100 appuntitled3[66173:6512504] qrc:/untitled3/Main.qml:18:5: QML Foo: Binding loop detected for property "bar" 2023-11-15 13:57:31.103987+0100 appuntitled3[66173:6512504] [qml] BAR null 2023-11-15 13:57:31.104021+0100 appuntitled3[66173:6512504] qrc:/untitled3/Main.qml:18:5: QML Foo: Binding loop detected for property "bar" 2023-11-15 13:57:31.104036+0100 appuntitled3[66173:6512504] [qml] BAR null 2023-11-15 13:57:31.104072+0100 appuntitled3[66173:6512504] qrc:/untitled3/Main.qml:18:5: QML Foo: Binding loop detected for property "bar" 2023-11-15 13:57:31.104088+0100 appuntitled3[66173:6512504] [qml] BAR null 2023-11-15 13:57:31.104117+0100 appuntitled3[66173:6512504] qrc:/untitled3/Main.qml:18:5: QML Foo: Binding loop detected for property "bar" 2023-11-15 13:57:31.104133+0100 appuntitled3[66173:6512504] [qml] BAR null
Running in normal mode (no debuggger attached):
QML debugging is enabled. Only use this in a safe environment. qml: BAR QQuickItem(0x6000000f48c0, "Bar") qml: BAR QQuickItem(0x6000000f48c0, "Bar") qml: BAR QQuickItem(0x6000000f48c0, "Bar") qml: BAR QQuickItem(0x6000000f48c0, "Bar") qml: BAR QQuickItem(0x6000000f48c0, "Bar")
Main.qml:
pragma ComponentBehavior: Bound import QtQuick Window { width: 640 height: 480 visible: true title: qsTr("Hello World") Item { id: bar objectName: "Bar" } Repeater { model: 5 Foo { bar: bar } } }
Foo.qml
import QtQuick Item { property Item bar Component.onCompleted: console.log("BAR", bar) }
Notes:
- "bar" is used for both the id and the property. Changing either the property or the id "fixes" the problem.
- This only occurs if "bar" is an item outside of the delegate component scope (pragma Bound)
Attachments
For Gerrit Dashboard: QTBUG-119162 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
520281,1 | QmlCompiler: Fix scoped name lookup | dev | qt/qtdeclarative | Status: ABANDONED | -1 | 0 |
520433,3 | Adapt to removal of QQmlJSTypeResolver::scopeForId() | dev | qt/tqtc-qmlcompilerplus | Status: MERGED | +2 | 0 |
520466,3 | QmlCompiler: Remove QQmlJSTypeResolver::scopeForId and idForScope | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
520532,6 | QML: Let IDs in outer context override bound components' properties | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
523035,3 | QML: Let IDs in outer context override bound components' properties | 6.6 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
523329,4 | QML: Let IDs in outer context override bound components' properties | tqtc/lts-6.5 | qt/tqtc-qtdeclarative | Status: MERGED | +2 | 0 |