<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/qmlcompiler, branch dev</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>QQmlJSScope: Remove clone functionality</title>
<updated>2026-05-05T13:48:57+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2026-04-29T13:43:33+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=83e3618660b3c03400cef15bec87b9ff1c991d75'/>
<id>83e3618660b3c03400cef15bec87b9ff1c991d75</id>
<content type='text'>
Cloning scopes is no longer needed, and adds some contextual complexity.
Let's remove it. This should also bring us one step closer to getting
rid of isSameType (as opposed to a simple operator==).

Change-Id: I00ab7e0ff128154032832b841937ebe726cc85d5
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Cloning scopes is no longer needed, and adds some contextual complexity.
Let's remove it. This should also bring us one step closer to getting
rid of isSameType (as opposed to a simple operator==).

Change-Id: I00ab7e0ff128154032832b841937ebe726cc85d5
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QQmlJSScope::resolveEnums: Remove clone usgae</title>
<updated>2026-05-05T13:48:56+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2026-04-29T13:40:04+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=72471b11e4dac6cd5d3cac173c97b9b9777b2df4'/>
<id>72471b11e4dac6cd5d3cac173c97b9b9777b2df4</id>
<content type='text'>
resolveEnums was the last remaining user of the clone functionality. It
was used to create a separate scope for an enum alias. However, we can
just redo the scope setup. That take a few more lines of code, but also
makes what happens slightly more explicit.

Amends dca259f040cfa452f5b617fe0112dcd70fe2c5fd.

Change-Id: I53d8eae16e0613d8551ed3dea9d0155a6726f452
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
resolveEnums was the last remaining user of the clone functionality. It
was used to create a separate scope for an enum alias. However, we can
just redo the scope setup. That take a few more lines of code, but also
makes what happens slightly more explicit.

Amends dca259f040cfa452f5b617fe0112dcd70fe2c5fd.

Change-Id: I53d8eae16e0613d8551ed3dea9d0155a6726f452
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QQmlJSScope:: remove unused cloneInto function</title>
<updated>2026-05-05T13:48:56+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2026-04-29T13:31:54+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=35b899c8247f731c476bb59e8255eea40d74bdd3'/>
<id>35b899c8247f731c476bb59e8255eea40d74bdd3</id>
<content type='text'>
Change-Id: I90d6615fc038b19d04c8d897524017c6e6aa649c
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I90d6615fc038b19d04c8d897524017c6e6aa649c
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QQmlSA::Element: rework qHash()</title>
<updated>2026-04-21T23:14:45+00:00</updated>
<author>
<name>Marc Mutz</name>
<email>marc.mutz@qt.io</email>
</author>
<published>2026-04-17T11:45:56+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=d3eb21fccc2024a3b9fa3cb51a7ccd1397bad301'/>
<id>d3eb21fccc2024a3b9fa3cb51a7ccd1397bad301</id>
<content type='text'>
A previous patch fixed the signature of the qHash() function for 6.11,
so hashing Elements would no longer involve the 1-to-2-arg qHash()
adapter, but it retained the static qHashImpl() method that still used
qsizetype, for BC.

The module is not under strict BC rules (see comment at the top of the
header file), but we didn't want to break it within a patch release.

For 6.12, we can break BC, so move the implementation into the
out-of-line method, rename it, make it a non-static member function,
adorn it with __attribute__((pure)) and change the input and outputs
to size_t.

Having thus broken all existing users and forced them to recompile, we
can now also drop the backwards-compatibility 1-to-2-arg adapter
algorithm.

Amends cdd7fe05f676ed1664a156beaf63093237a3beac (6.6), as well as the
commit that changed the signature of qHash(Element) (picked to 6.11).

Task-number: QTBUG-145851
Task-number: QTBUG-145829
Change-Id: Iefb02aea2cbab0526c335786f01e5b6d99a4bae8
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A previous patch fixed the signature of the qHash() function for 6.11,
so hashing Elements would no longer involve the 1-to-2-arg qHash()
adapter, but it retained the static qHashImpl() method that still used
qsizetype, for BC.

The module is not under strict BC rules (see comment at the top of the
header file), but we didn't want to break it within a patch release.

For 6.12, we can break BC, so move the implementation into the
out-of-line method, rename it, make it a non-static member function,
adorn it with __attribute__((pure)) and change the input and outputs
to size_t.

Having thus broken all existing users and forced them to recompile, we
can now also drop the backwards-compatibility 1-to-2-arg adapter
algorithm.

Amends cdd7fe05f676ed1664a156beaf63093237a3beac (6.6), as well as the
commit that changed the signature of qHash(Element) (picked to 6.11).

Task-number: QTBUG-145851
Task-number: QTBUG-145829
Change-Id: Iefb02aea2cbab0526c335786f01e5b6d99a4bae8
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qqmlsa.cpp: Fix unity build on Windows</title>
<updated>2026-04-21T11:11:30+00:00</updated>
<author>
<name>Friedemann Kleint</name>
<email>Friedemann.Kleint@qt.io</email>
</author>
<published>2026-04-21T08:10:19+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=89b02119ed8f3ab2194bb7b4b64033127a4833b9'/>
<id>89b02119ed8f3ab2194bb7b4b64033127a4833b9</id>
<content type='text'>
Some other source file apparently includes &lt;windows.h&gt;,
so, rename variables named "interface".

Task-number: QTBUG-115140
Change-Id: Icea860d62add462b686ffc188bb0b3cf92c77ac4
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some other source file apparently includes &lt;windows.h&gt;,
so, rename variables named "interface".

Task-number: QTBUG-115140
Change-Id: Icea860d62add462b686ffc188bb0b3cf92c77ac4
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Compiler: Add ownerOfEnum static method to qqmljsscope</title>
<updated>2026-04-20T14:55:04+00:00</updated>
<author>
<name>Olivier De Cannière</name>
<email>olivier.decanniere@qt.io</email>
</author>
<published>2026-04-20T08:33:32+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=122dcada50b634bc81c819c76573118236c7635c'/>
<id>122dcada50b634bc81c819c76573118236c7635c</id>
<content type='text'>
It is the equivalent of the existing ownerOfProperty and ownerOfMethod.

Change-Id: I7901c1280780906be409be2c0a2fc0b42ebff338
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is the equivalent of the existing ownerOfProperty and ownerOfMethod.

Change-Id: I7901c1280780906be409be2c0a2fc0b42ebff338
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmllint: clean up TypeReaders</title>
<updated>2026-04-20T09:39:32+00:00</updated>
<author>
<name>Sami Shalayel</name>
<email>sami.shalayel@qt.io</email>
</author>
<published>2026-04-01T12:49:55+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=bb1ba6e700c6151c0f3f66fc8425fb389640f99c'/>
<id>bb1ba6e700c6151c0f3f66fc8425fb389640f99c</id>
<content type='text'>
We never return any errors from the typereaders, so remove the unused
error reporting there. Warnings should be emitted via the import visitor
in QQmlJSImporter in the future.

Remove the friend declaration from QDeferredFactory&lt;QQmlJSScope&gt;: it
was only needed to access the globalWarnings member of QQmlJSImporter.

Also unify the signatures of the TypeReader::operator() methods and remove
unused members in QQmlJSTypeReader.

Now that QQmlJSTypeReader has no more members make it a free function
in the QQmlJS namespace, and move the TypeReader typedef into that
header. This way, qqmljstypereader_p.h still contains a type called
QQmlJS::TypeReader.

Change-Id: I875fdb507b8f77ee98bc7e644299b579c6b9b712
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We never return any errors from the typereaders, so remove the unused
error reporting there. Warnings should be emitted via the import visitor
in QQmlJSImporter in the future.

Remove the friend declaration from QDeferredFactory&lt;QQmlJSScope&gt;: it
was only needed to access the globalWarnings member of QQmlJSImporter.

Also unify the signatures of the TypeReader::operator() methods and remove
unused members in QQmlJSTypeReader.

Now that QQmlJSTypeReader has no more members make it a free function
in the QQmlJS namespace, and move the TypeReader typedef into that
header. This way, qqmljstypereader_p.h still contains a type called
QQmlJS::TypeReader.

Change-Id: I875fdb507b8f77ee98bc7e644299b579c6b9b712
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QQmlSA::Element: fix qHash() signature</title>
<updated>2026-04-19T21:39:34+00:00</updated>
<author>
<name>Marc Mutz</name>
<email>marc.mutz@qt.io</email>
</author>
<published>2026-04-17T11:07:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=3df7977abff6cff6f25b923478a2cdd0429ab61c'/>
<id>3df7977abff6cff6f25b923478a2cdd0429ab61c</id>
<content type='text'>
The qHash() function used qsizetype instead of size_t, so the
1-to-2-arg qHash() adapter was a better match and would call this
function as part of its implementation.

We want to get rid of the adapter, so fix the signature of the
function, so it gets called directly instead, and adjust the
implementation to do what the adapter wrapped around it did: call (the
old) qHash() with a default seed, then xor the seed into the result.
This is different from passing the seed to the helper function, so we
need to retain that for BC purposes until Qt 6.12 can break BC (while
QQmlSA is "TP-ish" / "limited compatibility guarantees" (see comment
at top of file) that doesn't mean we should break BC in a patch release
if we can avoid it).

Add a comment to fix the qsizetype in the exported class method, too,
when we can (for 6.12).

As a drive-by, drop the pointless inline keyword from the definition,
further pointless keywords from the \fn line, and use the \qhash macro
for documentation.

Amends cdd7fe05f676ed1664a156beaf63093237a3beac (6.6).

Pick-to: 6.11
Task-number: QTBUG-145851
Task-number: QTBUG-145829
Change-Id: If4d07964ca380158c23c1e47d5172ddfc1c6663f
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The qHash() function used qsizetype instead of size_t, so the
1-to-2-arg qHash() adapter was a better match and would call this
function as part of its implementation.

We want to get rid of the adapter, so fix the signature of the
function, so it gets called directly instead, and adjust the
implementation to do what the adapter wrapped around it did: call (the
old) qHash() with a default seed, then xor the seed into the result.
This is different from passing the seed to the helper function, so we
need to retain that for BC purposes until Qt 6.12 can break BC (while
QQmlSA is "TP-ish" / "limited compatibility guarantees" (see comment
at top of file) that doesn't mean we should break BC in a patch release
if we can avoid it).

Add a comment to fix the qsizetype in the exported class method, too,
when we can (for 6.12).

As a drive-by, drop the pointless inline keyword from the definition,
further pointless keywords from the \fn line, and use the \qhash macro
for documentation.

Amends cdd7fe05f676ed1664a156beaf63093237a3beac (6.6).

Pick-to: 6.11
Task-number: QTBUG-145851
Task-number: QTBUG-145829
Change-Id: If4d07964ca380158c23c1e47d5172ddfc1c6663f
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QDeferredFactory&lt;QQmlJSScope&gt;: remove redundant code</title>
<updated>2026-04-16T17:33:06+00:00</updated>
<author>
<name>Sami Shalayel</name>
<email>sami.shalayel@qt.io</email>
</author>
<published>2026-04-01T12:05:29+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=1f22e19db7da7b6aab5e5bb2f24bb2cbb49dea4e'/>
<id>1f22e19db7da7b6aab5e5bb2f24bb2cbb49dea4e</id>
<content type='text'>
The filepath and internalName are written by the import visitor, no
need to set them in populate().

Also, the resolve-calls are also done by the import visitor, no need to
do them again in populate().

Change-Id: I7d7c56f75ea061326d683e4fcd7a01d3724d4894
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The filepath and internalName are written by the import visitor, no
need to set them in populate().

Also, the resolve-calls are also done by the import visitor, no need to
do them again in populate().

Change-Id: I7d7c56f75ea061326d683e4fcd7a01d3724d4894
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmllint: warn on singleton mismatch in LinterVisitor</title>
<updated>2026-04-16T17:33:06+00:00</updated>
<author>
<name>Sami Shalayel</name>
<email>sami.shalayel@qt.io</email>
</author>
<published>2026-04-01T10:50:10+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=93e6d7bc8e81bf4b82ebda6edc3ee40ef1123bb4'/>
<id>93e6d7bc8e81bf4b82ebda6edc3ee40ef1123bb4</id>
<content type='text'>
Move the warning from the QDeferredFactory&lt;QQmlJSScope&gt; to the
LinterVisitor. Adapt a test to expect the warning only on the singleton
file, instead of the previous behavior of seeing the warnings on all qml
files importing the QML module with the faulty singleton. Remove the
test files that imported the faulty QML Module.

Set the singleton flag on QQmlJSScope in the importer based on the
singleton entry in the qmldir instead of using the singleton pragma
value. This mimics the way the QML Engine ignores the singleton pragma
value.

Move m_rootIsSingleton from QQmlJSImportVisitor to LinterVisitor now
that its unused in QQmlJSImportVisitor.

Change-Id: I398738c816fbd273c51626954860a724b3110990
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the warning from the QDeferredFactory&lt;QQmlJSScope&gt; to the
LinterVisitor. Adapt a test to expect the warning only on the singleton
file, instead of the previous behavior of seeing the warnings on all qml
files importing the QML module with the faulty singleton. Remove the
test files that imported the faulty QML Module.

Set the singleton flag on QQmlJSScope in the importer based on the
singleton entry in the qmldir instead of using the singleton pragma
value. This mimics the way the QML Engine ignores the singleton pragma
value.

Move m_rootIsSingleton from QQmlJSImportVisitor to LinterVisitor now
that its unused in QQmlJSImportVisitor.

Change-Id: I398738c816fbd273c51626954860a724b3110990
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
