Fix occurrences of the contains/insert anti-pattern

Introduce and make use of Utils::insert() for QSet with a return value
that indicates whether insertion actually happened.

Change-Id: I655e4bc3553b74fea5ae8956205e4d8070118d63
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Christian Kandeler
2023-06-22 14:58:11 +02:00
parent ae33199d04
commit cf6bd7e012
39 changed files with 107 additions and 169 deletions

View File

@@ -16,6 +16,7 @@
#include <texteditor/texteditorsettings.h>
#include <texteditor/completionsettings.h>
#include <utils/algorithm.h>
#include <utils/qtcassert.h>
#include <qmljs/qmljsmodelmanagerinterface.h>
@@ -261,10 +262,9 @@ private:
void processProperties(const ObjectValue *object)
{
if (! object || _processed.contains(object))
if (! object || !Utils::insert(_processed, object))
return;
_processed.insert(object);
processProperties(object->prototype(_scopeChain->context()));
_currentObject = object;

View File

@@ -952,9 +952,8 @@ QList<FindReferences::Usage> FindReferences::findUsageOfType(const Utils::FilePa
QSet<Utils::FilePath> docDone;
for (const QmlJS::Document::Ptr &doc : std::as_const(snapshot)) {
Utils::FilePath sourceFile = modelManager->fileToSource(doc->fileName());
if (docDone.contains(sourceFile))
if (!Utils::insert(docDone, sourceFile))
continue;
docDone.insert(sourceFile);
QmlJS::Document::Ptr sourceDoc = doc;
if (sourceFile != doc->fileName())
sourceDoc = snapshot.document(sourceFile);