mirror of
git://code.qt.io/qt/qt5.git
synced 2026-09-18 06:40:01 +08:00
a92ce0b897
The rule in this form is not as helpful as intented.
Paraphrasing comments from the linked issue:
This rule was created based on clazy's “Warn when iterator objects are
implicitly cast to const_iterator" which was likely an attempt to limit
hidden detaches of implicitly-shared Qt containers.
But mixing const_iterator and iterator is not the problem. The problem
is calling a non-const begin()/end()/find()/etc when you only need
const_iterators. So if you ban the implicit conversion from iterator to
const_iterator, you will catch these, theoretically. Practically, no-one
writes QList<Foo>::const_iterator it = l.begin() these days anymore,
everyone is using auto, so the check can never actually trigger for True
Positives.
As-is, it produces False Positives which has a potential to make the
code actually worse.
An alternative to reach a similar goal is to use QT_STRICT_ITERATORS, so
there’s no need for an Axivion check for it.
Task-number: BAUHAUS-29596
Change-Id: I910e9ecc89c3db497c046f6d15ff07ab2ecc470a
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit cc750dc924)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>