aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArtem Sokolovskii <artem.sokolovskii@qt.io>2022-12-19 16:41:00 +0100
committerArtem Sokolovskii <artem.sokolovskii@qt.io>2022-12-21 12:53:41 +0000
commitf0556b08b825ef92a3549f0581a441678a090fa1 (patch)
tree70bf4963ffb24b20317d5838aaa1eb8f3f8d37ce /src
parent50ebf1f82423e5586f8a850c8eccd6d5610a0789 (diff)
qmljs: Remove foreach usage
Task-number: QTCREATORBUG-27464 Change-Id: Ifdb8cf514dfe328e0a64bde1beff3e63a4b7fbc3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Diffstat (limited to 'src')
-rw-r--r--src/libs/glsl/glsltypes.cpp8
-rw-r--r--src/libs/languageutils/fakemetaobject.cpp4
-rw-r--r--src/libs/languageutils/fakemetaobject.h2
-rw-r--r--src/libs/qmljs/jsoncheck.cpp2
-rw-r--r--src/libs/qmljs/parser/qmljsengine_p.h2
-rw-r--r--src/libs/qmljs/persistenttrie.cpp25
-rw-r--r--src/libs/qmljs/persistenttrie.h2
-rw-r--r--src/libs/qmljs/qmljsbind.cpp5
-rw-r--r--src/libs/qmljs/qmljsbind.h2
-rw-r--r--src/libs/qmljs/qmljsbundle.cpp10
-rw-r--r--src/libs/qmljs/qmljsbundle.h2
-rw-r--r--src/libs/qmljs/qmljscheck.cpp17
-rw-r--r--src/libs/qmljs/qmljscodeformatter.cpp2
-rw-r--r--src/libs/qmljs/qmljsdocument.cpp29
-rw-r--r--src/libs/qmljs/qmljsdocument.h6
-rw-r--r--src/libs/qmljs/qmljsfindexportedcpptypes.cpp14
-rw-r--r--src/libs/qmljs/qmljsicons.cpp6
-rw-r--r--src/libs/qmljs/qmljsimportdependencies.cpp37
-rw-r--r--src/libs/qmljs/qmljsinterpreter.cpp39
-rw-r--r--src/libs/qmljs/qmljsinterpreter.h2
-rw-r--r--src/libs/qmljs/qmljslineinfo.cpp4
-rw-r--r--src/libs/qmljs/qmljsplugindumper.cpp11
-rw-r--r--src/libs/qmljs/qmljsreformatter.cpp2
-rw-r--r--src/libs/qmljs/qmljsscopebuilder.cpp6
-rw-r--r--src/libs/qmljs/qmljsscopechain.cpp20
-rw-r--r--src/libs/qmljs/qmljsscopechain.h4
26 files changed, 138 insertions, 125 deletions
diff --git a/src/libs/glsl/glsltypes.cpp b/src/libs/glsl/glsltypes.cpp
index 487a6afe64..b74c9ffbfb 100644
--- a/src/libs/glsl/glsltypes.cpp
+++ b/src/libs/glsl/glsltypes.cpp
@@ -308,7 +308,7 @@ bool ArrayType::isLessThan(const Type *other) const
QList<Symbol *> Struct::members() const
{
QList<Symbol *> m;
- for (Symbol *s : std::as_const(_members)) {
+ for (Symbol *s : _members) {
if (! s->name().isEmpty())
m.append(s);
}
@@ -322,7 +322,7 @@ void Struct::add(Symbol *member)
Symbol *Struct::find(const QString &name) const
{
- for (Symbol *s : std::as_const(_members)) {
+ for (Symbol *s : _members) {
if (s->name() == name)
return s;
}
@@ -411,7 +411,7 @@ bool Function::isLessThan(const Type *other) const
QList<Symbol *> Function::members() const
{
QList<Symbol *> m;
- for (Argument *arg : std::as_const(_arguments)) {
+ for (Argument *arg : _arguments) {
if (! arg->name().isEmpty())
m.append(arg);
}
@@ -420,7 +420,7 @@ QList<Symbol *> Function::members() const
Symbol *Function::find(const QString &name) const
{
- for (Argument *arg : std::as_const(_arguments)) {
+ for (Argument *arg : _arguments) {
if (arg->name() == name)
return arg;
}
diff --git a/src/libs/languageutils/fakemetaobject.cpp b/src/libs/languageutils/fakemetaobject.cpp
index 796f017ec9..68806328f7 100644
--- a/src/libs/languageutils/fakemetaobject.cpp
+++ b/src/libs/languageutils/fakemetaobject.cpp
@@ -283,11 +283,11 @@ void FakeMetaObject::setExportMetaObjectRevision(int exportIndex, int metaObject
m_exports[exportIndex].metaObjectRevision = metaObjectRevision;
}
-QList<FakeMetaObject::Export> FakeMetaObject::exports() const
+const QList<FakeMetaObject::Export> FakeMetaObject::exports() const
{ return m_exports; }
FakeMetaObject::Export FakeMetaObject::exportInPackage(const QString &package) const
{
- for (const Export &exp : std::as_const(m_exports)) {
+ for (const Export &exp : m_exports) {
if (exp.package == package)
return exp;
}
diff --git a/src/libs/languageutils/fakemetaobject.h b/src/libs/languageutils/fakemetaobject.h
index dcf4d31ea1..ee98795689 100644
--- a/src/libs/languageutils/fakemetaobject.h
+++ b/src/libs/languageutils/fakemetaobject.h
@@ -162,7 +162,7 @@ public:
void addExport(const QString &name, const QString &package, ComponentVersion version);
void setExportMetaObjectRevision(int exportIndex, int metaObjectRevision);
- QList<Export> exports() const;
+ const QList<Export> exports() const;
Export exportInPackage(const QString &package) const;
void setSuperclassName(const QString &superclass);
diff --git a/src/libs/qmljs/jsoncheck.cpp b/src/libs/qmljs/jsoncheck.cpp
index d612dfd44a..015fff8b82 100644
--- a/src/libs/qmljs/jsoncheck.cpp
+++ b/src/libs/qmljs/jsoncheck.cpp
@@ -107,7 +107,7 @@ bool JsonCheck::visit(ObjectPattern *ast)
}
QStringList missing;
- foreach (const QString &property, properties) {
+ for (const QString &property : properties) {
if (!propertiesFound.contains(property)) {
m_schema->enterNestedPropertySchema(property);
if (m_schema->required())
diff --git a/src/libs/qmljs/parser/qmljsengine_p.h b/src/libs/qmljs/parser/qmljsengine_p.h
index 36453d83aa..dfe0c60caa 100644
--- a/src/libs/qmljs/parser/qmljsengine_p.h
+++ b/src/libs/qmljs/parser/qmljsengine_p.h
@@ -75,7 +75,7 @@ public:
_comments.append(QmlJS::SourceLocation(pos, len, line, col));
}
- QList<SourceLocation> comments() const { return _comments; }
+ const QList<SourceLocation> comments() const { return _comments; }
Lexer *lexer() const { return _lexer; }
void setLexer(Lexer *lexer) { _lexer = lexer; }
diff --git a/src/libs/qmljs/persistenttrie.cpp b/src/libs/qmljs/persistenttrie.cpp
index 41ed98d123..58ff48903a 100644
--- a/src/libs/qmljs/persistenttrie.cpp
+++ b/src/libs/qmljs/persistenttrie.cpp
@@ -96,7 +96,7 @@ void TrieNode::complete(QStringList &res, const TrieNode::Ptr &trie,
complete(res, trie->postfixes[0],QString(), base2, flags);
return;
}
- foreach (TrieNode::Ptr t, trie->postfixes) {
+ for (TrieNode::Ptr t : std::as_const(trie->postfixes)) {
if ((flags & Partial) != 0)
res.append(base2 + t->prefix);
else
@@ -104,7 +104,7 @@ void TrieNode::complete(QStringList &res, const TrieNode::Ptr &trie,
}
return;
}
- foreach (const TrieNode::Ptr v, trie->postfixes) {
+ for (const TrieNode::Ptr &v : std::as_const(trie->postfixes)) {
QString::const_iterator vi = v->prefix.constBegin(), vEnd = v->prefix.constEnd();
if (vi != vEnd && (*vi == *j || ((flags & CaseInsensitive) != 0
&& vi->toLower() == j->toLower()) || ((flags & SkipChars) != 0)))
@@ -199,7 +199,7 @@ bool TrieNode::contains(const TrieNode::Ptr &trie,
if ((flags & Partial) != 0)
return true;
if (i == iEnd) {
- foreach (const TrieNode::Ptr t, trie->postfixes)
+ for (const TrieNode::Ptr &t : std::as_const(trie->postfixes))
if (t->prefix.isEmpty())
return true;
return trie->postfixes.isEmpty();
@@ -209,7 +209,7 @@ bool TrieNode::contains(const TrieNode::Ptr &trie,
if (i != iEnd)
return false;
bool res = false;
- foreach (const TrieNode::Ptr v, trie->postfixes) {
+ for (const TrieNode::Ptr &v : std::as_const(trie->postfixes)) {
QString::const_iterator vi = v->prefix.constBegin(), vEnd = v->prefix.constEnd();
if (vi != vEnd && (*vi == *j || ((flags & CaseInsensitive) != 0
&& vi->toLower() == j->toLower())))
@@ -312,7 +312,7 @@ std::pair<TrieNode::Ptr,int> TrieNode::intersectF(
if (v1->postfixes.isEmpty() || v2->postfixes.isEmpty()) {
if (v1->postfixes.isEmpty() && v2->postfixes.isEmpty())
return std::make_pair(v1, 3);
- foreach (P t1, v1->postfixes)
+ for (P t1 : std::as_const(v1->postfixes))
if (t1->prefix.isEmpty()) {
if (index1 == 0)
return std::make_pair(v2, 2);
@@ -320,7 +320,7 @@ std::pair<TrieNode::Ptr,int> TrieNode::intersectF(
return std::make_pair(TrieNode::create(
v1->prefix.left(index1).append(v2->prefix), v2->postfixes),0);
}
- foreach (P t2, v2->postfixes)
+ for (P t2 : std::as_const(v2->postfixes))
if (t2->prefix.isEmpty())
return std::make_pair(v1,1);
return std::make_pair(P(nullptr), 0);
@@ -328,10 +328,10 @@ std::pair<TrieNode::Ptr,int> TrieNode::intersectF(
QMap<QString,int> p1, p2;
QList<P> p3;
int ii = 0;
- foreach (P t1, v1->postfixes)
+ for (P t1 : std::as_const(v1->postfixes))
p1[t1->prefix] = ii++;
ii = 0;
- foreach (P t2, v2->postfixes)
+ for (P t2 : std::as_const(v2->postfixes))
p2[t2->prefix] = ii++;
MapIterator p1Ptr = p1.constBegin(), p2Ptr = p2.constBegin(),
p1End = p1.constEnd(), p2End = p2.constEnd();
@@ -419,7 +419,7 @@ std::pair<TrieNode::Ptr,int> TrieNode::intersectF(
}
}
// i == iEnd && j != jEnd
- foreach (const P &t1, v1->postfixes)
+ for (const P &t1 : std::as_const(v1->postfixes))
if ((!t1->prefix.isEmpty()) && t1->prefix.at(0) == *j) {
std::pair<P,int> res = intersectF(v2,t1,j-v2->prefix.constBegin());
if (index1 == 0)
@@ -432,7 +432,7 @@ std::pair<TrieNode::Ptr,int> TrieNode::intersectF(
return std::make_pair(P(nullptr), 0);
} else {
// i != iEnd && j == jEnd
- foreach (P t2, v2->postfixes)
+ for (P t2 : std::as_const(v2->postfixes))
if (!t2->prefix.isEmpty() && t2->prefix.at(0) == *i) {
std::pair<P,int> res = intersectF(v1,t2,i-v1->prefix.constBegin());
return std::make_pair(res.first, (res.second & 1));
@@ -468,7 +468,8 @@ QDebug &TrieNode::printStrings(QDebug &dbg, const TrieNode::Ptr &trie)
return dbg << "Trie{*NULL*}";
dbg<<"Trie{ contents:[";
bool first = true;
- foreach (const QString &s, stringList(trie)) {
+ const QStringList list = stringList(trie);
+ for (const QString &s : list) {
if (!first)
dbg << ",";
else
@@ -491,7 +492,7 @@ QDebug &TrieNode::describe(QDebug &dbg, const TrieNode::Ptr &trie,
dbg << trie->prefix;
int newIndent = indent + trie->prefix.size() + 3;
bool newLine = false;
- foreach (TrieNode::Ptr sub, trie->postfixes) {
+ for (TrieNode::Ptr sub : std::as_const(trie->postfixes)) {
if (newLine) {
dbg << "\n";
for (int i=0; i < newIndent; ++i)
diff --git a/src/libs/qmljs/persistenttrie.h b/src/libs/qmljs/persistenttrie.h
index d7777beddb..59d376f602 100644
--- a/src/libs/qmljs/persistenttrie.h
+++ b/src/libs/qmljs/persistenttrie.h
@@ -88,7 +88,7 @@ template <typename T> void enumerateTrieNode(const TrieNode::Ptr &trie, T &t,
if (trie.isNull())
return;
base.append(trie->prefix);
- foreach (const TrieNode::Ptr subT, trie->postfixes) {
+ for (const TrieNode::Ptr subT : std::as_const(trie->postfixes)) {
enumerateTrieNode(subT,t,base);
}
if (trie->postfixes.isEmpty())
diff --git a/src/libs/qmljs/qmljsbind.cpp b/src/libs/qmljs/qmljsbind.cpp
index 010ba5eb6c..f678f63fc8 100644
--- a/src/libs/qmljs/qmljsbind.cpp
+++ b/src/libs/qmljs/qmljsbind.cpp
@@ -54,7 +54,7 @@ bool Bind::isJsLibrary() const
return _isJsLibrary;
}
-QList<ImportInfo> Bind::imports() const
+const QList<ImportInfo> Bind::imports() const
{
return _imports;
}
@@ -86,7 +86,8 @@ bool Bind::usesQmlPrototype(ObjectValue *prototype,
if (componentName.isEmpty())
return false;
- foreach (const ObjectValue *object, _qmlObjectsByPrototypeName.values(componentName)) {
+ QList<const ObjectValue *> values = _qmlObjectsByPrototypeName.values(componentName);
+ for (const ObjectValue *object : values) {
// resolve and check the prototype
const ObjectValue *resolvedPrototype = object->prototype(context);
if (resolvedPrototype == prototype)
diff --git a/src/libs/qmljs/qmljsbind.h b/src/libs/qmljs/qmljsbind.h
index 34045e0a83..95ecefb669 100644
--- a/src/libs/qmljs/qmljsbind.h
+++ b/src/libs/qmljs/qmljsbind.h
@@ -25,7 +25,7 @@ public:
~Bind();
bool isJsLibrary() const;
- QList<ImportInfo> imports() const;
+ const QList<ImportInfo> imports() const;
ObjectValue *idEnvironment() const;
ObjectValue *rootObjectValue() const;
diff --git a/src/libs/qmljs/qmljsbundle.cpp b/src/libs/qmljs/qmljsbundle.cpp
index 770dffa55c..c54fce4ee2 100644
--- a/src/libs/qmljs/qmljsbundle.cpp
+++ b/src/libs/qmljs/qmljsbundle.cpp
@@ -142,7 +142,8 @@ void QmlBundle::printEscaped(QTextStream &s, const QString &str)
void QmlBundle::writeTrie(QTextStream &stream, const Trie &t, const QString &indent) {
stream << QLatin1Char('[');
bool firstLine = true;
- foreach (const QString &i, t.stringList()) {
+ const QStringList list = t.stringList();
+ for (const QString &i : list) {
if (firstLine)
firstLine = false;
else
@@ -197,7 +198,8 @@ QStringList QmlBundle::maybeReadTrie(Trie &trie, Utils::JsonObjectValue *config,
Utils::JsonValue *imp0 = config->member(propertyName);
Utils::JsonArrayValue *imp = ((imp0 != nullptr) ? imp0->toArray() : nullptr);
if (imp != nullptr) {
- foreach (Utils::JsonValue *v, imp->elements()) {
+ const QList<Utils::JsonValue *> elements = imp->elements();
+ for (Utils::JsonValue *v : elements) {
Utils::JsonStringValue *impStr = ((v != nullptr) ? v->toString() : nullptr);
if (impStr != nullptr) {
trie.insert(impStr->value());
@@ -272,14 +274,14 @@ void QmlLanguageBundles::mergeBundleForLanguage(Dialect l, const QmlBundle &bund
m_bundles.insert(l,bundle);
}
-QList<Dialect> QmlLanguageBundles::languages() const
+const QList<Dialect> QmlLanguageBundles::languages() const
{
return m_bundles.keys();
}
void QmlLanguageBundles::mergeLanguageBundles(const QmlLanguageBundles &o)
{
- foreach (Dialect l, o.languages())
+ for (Dialect l : o.languages())
mergeBundleForLanguage(l, o.bundleForLanguage(l));
}
diff --git a/src/libs/qmljs/qmljsbundle.h b/src/libs/qmljs/qmljsbundle.h
index bc3752dbf7..8b0bfde11c 100644
--- a/src/libs/qmljs/qmljsbundle.h
+++ b/src/libs/qmljs/qmljsbundle.h
@@ -74,7 +74,7 @@ class QMLJS_EXPORT QmlLanguageBundles
public:
QmlBundle bundleForLanguage(Dialect l) const;
void mergeBundleForLanguage(Dialect l, const QmlBundle &bundle);
- QList<Dialect> languages() const;
+ const QList<Dialect> languages() const;
void mergeLanguageBundles(const QmlLanguageBundles &);
private:
QHash<Dialect,QmlBundle> m_bundles;
diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index ef8af878f3..d55c4dcd5f 100644
--- a/src/libs/qmljs/qmljscheck.cpp
+++ b/src/libs/qmljs/qmljscheck.cpp
@@ -433,7 +433,8 @@ protected:
}
if (_possiblyUndeclaredUses.contains(name)) {
- foreach (const SourceLocation &loc, _possiblyUndeclaredUses.value(name)) {
+ const QList<SourceLocation> values = _possiblyUndeclaredUses.value(name);
+ for (const SourceLocation &loc : values) {
addMessage(WarnVarUsedBeforeDeclaration, loc, name);
}
_possiblyUndeclaredUses.remove(name);
@@ -469,7 +470,8 @@ protected:
if (FunctionDeclaration *decl = cast<FunctionDeclaration *>(ast)) {
if (_possiblyUndeclaredUses.contains(name)) {
- foreach (const SourceLocation &loc, _possiblyUndeclaredUses.value(name)) {
+ const QList<SourceLocation> values = _possiblyUndeclaredUses.value(name);
+ for (const SourceLocation &loc : values) {
addMessage(WarnFunctionUsedBeforeDeclaration, loc, name);
}
_possiblyUndeclaredUses.remove(name);
@@ -1642,7 +1644,7 @@ void Check::checkExtraParentheses(ExpressionNode *expression)
void Check::addMessages(const QList<Message> &messages)
{
- foreach (const Message &msg, messages)
+ for (const Message &msg : messages)
addMessage(msg);
}
@@ -1682,7 +1684,8 @@ void Check::scanCommentsForAnnotations()
m_disabledMessageTypesByLine.clear();
const QRegularExpression disableCommentPattern = Message::suppressionPattern();
- foreach (const SourceLocation &commentLoc, _doc->engine()->comments()) {
+ const QList<SourceLocation> comments = _doc->engine()->comments();
+ for (const SourceLocation &commentLoc : comments) {
const QString &comment = _doc->source().mid(int(commentLoc.begin()), int(commentLoc.length));
// enable all checks annotation
@@ -1728,7 +1731,7 @@ void Check::warnAboutUnnecessarySuppressions()
{
for (auto it = m_disabledMessageTypesByLine.cbegin(), end = m_disabledMessageTypesByLine.cend();
it != end; ++it) {
- foreach (const MessageTypeAndSuppression &entry, it.value()) {
+ for (const MessageTypeAndSuppression &entry : it.value()) {
if (!entry.wasSuppressed)
addMessage(WarnUnnecessaryMessageSuppression, entry.suppressionSource);
}
@@ -1738,7 +1741,7 @@ void Check::warnAboutUnnecessarySuppressions()
bool Check::isQtQuick2() const
{
if (_doc->language() == Dialect::Qml) {
- foreach (const Import &import, _imports->all()) {
+ for (const Import &import : _imports->all()) {
if (import.info.name() == "QtQuick"
&& import.info.version().majorVersion() == 2)
return true;
@@ -2053,7 +2056,7 @@ void Check::checkCaseFallthrough(StatementList *statements, SourceLocation error
afterLastStatement = it->statement->lastSourceLocation().end();
}
- foreach (const SourceLocation &comment, _doc->engine()->comments()) {
+ for (const SourceLocation &comment : _doc->engine()->comments()) {
if (comment.begin() < afterLastStatement
|| comment.end() > nextLoc.begin())
continue;
diff --git a/src/libs/qmljs/qmljscodeformatter.cpp b/src/libs/qmljs/qmljscodeformatter.cpp
index a2753a689a..2ec5e970eb 100644
--- a/src/libs/qmljs/qmljscodeformatter.cpp
+++ b/src/libs/qmljs/qmljscodeformatter.cpp
@@ -1023,7 +1023,7 @@ void CodeFormatter::dump() const
{
qCDebug(formatterLog) << "Current token index" << m_tokenIndex;
qCDebug(formatterLog) << "Current state:";
- foreach (const State &s, m_currentState) {
+ for (const State &s : m_currentState) {
qCDebug(formatterLog) << stateToString(s.type) << s.savedIndentDepth;
}
qCDebug(formatterLog) << "Current indent depth:" << m_indentDepth;
diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp
index e5395ad532..46d3ba1d20 100644
--- a/src/libs/qmljs/qmljsdocument.cpp
+++ b/src/libs/qmljs/qmljsdocument.cpp
@@ -372,7 +372,7 @@ QByteArray LibraryInfo::calculateFingerprint() const
hash.addData(reinterpret_cast<const char *>(&_status), sizeof(_status));
int len = _components.size();
hash.addData(reinterpret_cast<const char *>(&len), sizeof(len));
- foreach (const QmlDirParser::Component &component, _components) {
+ for (const QmlDirParser::Component &component : _components) {
len = component.fileName.size();
hash.addData(reinterpret_cast<const char *>(&len), sizeof(len));
hash.addData(reinterpret_cast<const char *>(component.fileName.constData()),
@@ -388,7 +388,7 @@ QByteArray LibraryInfo::calculateFingerprint() const
}
len = _plugins.size();
hash.addData(reinterpret_cast<const char *>(&len), sizeof(len));
- foreach (const QmlDirParser::Plugin &plugin, _plugins) {
+ for (const QmlDirParser::Plugin &plugin : _plugins) {
len = plugin.path.size();
hash.addData(reinterpret_cast<const char *>(&len), sizeof(len));
hash.addData(reinterpret_cast<const char *>(plugin.path.constData()), len * sizeofQChar);
@@ -398,7 +398,7 @@ QByteArray LibraryInfo::calculateFingerprint() const
}
len = _typeinfos.size();
hash.addData(reinterpret_cast<const char *>(&len), sizeof(len));
- foreach (const QString &typeinfo, _typeinfos) {
+ for (const QString &typeinfo : _typeinfos) {
len = typeinfo.size();
hash.addData(reinterpret_cast<const char *>(&len), sizeof(len));
hash.addData(reinterpret_cast<const char *>(typeinfo.constData()),
@@ -407,10 +407,10 @@ QByteArray LibraryInfo::calculateFingerprint() const
len = _metaObjects.size();
hash.addData(reinterpret_cast<const char *>(&len), sizeof(len));
QList<QByteArray> metaFingerprints;
- foreach (const LanguageUtils::FakeMetaObject::ConstPtr &metaObject, _metaObjects)
+ for (const LanguageUtils::FakeMetaObject::ConstPtr &metaObject : _metaObjects)
metaFingerprints.append(metaObject->fingerprint());
std::sort(metaFingerprints.begin(), metaFingerprints.end());
- foreach (const QByteArray &fp, metaFingerprints)
+ for (const QByteArray &fp : std::as_const(metaFingerprints))
hash.addData(fp);
hash.addData(reinterpret_cast<const char *>(&_dumpStatus), sizeof(_dumpStatus));
len = _dumpError.size(); // localization dependent (avoid?)
@@ -419,12 +419,12 @@ QByteArray LibraryInfo::calculateFingerprint() const
len = _moduleApis.size();
hash.addData(reinterpret_cast<const char *>(&len), sizeof(len));
- foreach (const ModuleApiInfo &moduleInfo, _moduleApis)
+ for (const ModuleApiInfo &moduleInfo : _moduleApis)
moduleInfo.addToHash(hash); // make it order independent?
len = _imports.size();
hash.addData(reinterpret_cast<const char *>(&len), sizeof(len));
- foreach (const QmlDirParser::Import &import, _imports)
+ for (const QmlDirParser::Import &import : _imports)
hash.addData(import.module.toUtf8()); // import order matters, keep order-dependent
QByteArray res(hash.result());
@@ -473,13 +473,14 @@ void Snapshot::insertLibraryInfo(const Utils::FilePath &path, const LibraryInfo
cImport.importId = path.toString();
cImport.language = Dialect::AnyLanguage;
QSet<ImportKey> packages;
- foreach (const ModuleApiInfo &moduleInfo, info.moduleApis()) {
+ for (const ModuleApiInfo &moduleInfo : info.moduleApis()) {
ImportKey iKey(ImportType::Library, moduleInfo.uri, moduleInfo.version.majorVersion(),
moduleInfo.version.minorVersion());
packages.insert(iKey);
}
- foreach (const LanguageUtils::FakeMetaObject::ConstPtr &metaO, info.metaObjects()) {
- foreach (const LanguageUtils::FakeMetaObject::Export &e, metaO->exports()) {
+ const QList<LanguageUtils::FakeMetaObject::ConstPtr> metaObjects = info.metaObjects();
+ for (const LanguageUtils::FakeMetaObject::ConstPtr &metaO : metaObjects) {
+ for (const LanguageUtils::FakeMetaObject::Export &e : metaO->exports()) {
ImportKey iKey(ImportType::Library, e.package, e.version.majorVersion(),
e.version.minorVersion());
packages.insert(iKey);
@@ -489,7 +490,7 @@ void Snapshot::insertLibraryInfo(const Utils::FilePath &path, const LibraryInfo
QStringList splitPath = path.path().split(QLatin1Char('/'));
const QRegularExpression vNr(QLatin1String("^(.+)\\.([0-9]+)(?:\\.([0-9]+))?$"));
const QRegularExpression safeName(QLatin1String("^[a-zA-Z_][[a-zA-Z0-9_]*$"));
- foreach (const ImportKey &importKey, packages) {
+ for (const ImportKey &importKey : std::as_const(packages)) {
if (importKey.splitPath.size() == 1 && importKey.splitPath.at(0).isEmpty() && splitPath.length() > 0) {
// relocatable
QStringList myPath = splitPath;
@@ -522,7 +523,7 @@ void Snapshot::insertLibraryInfo(const Utils::FilePath &path, const LibraryInfo
int majorVersion = LanguageUtils::ComponentVersion::NoVersion;
int minorVersion = LanguageUtils::ComponentVersion::NoVersion;
- foreach (const QmlDirParser::Component &component, info.components()) {
+ for (const QmlDirParser::Component &component : info.components()) {
if (component.majorVersion > majorVersion)
majorVersion = component.majorVersion;
if (component.minorVersion > minorVersion)
@@ -555,8 +556,8 @@ void Snapshot::insertLibraryInfo(const Utils::FilePath &path, const LibraryInfo
cImport.addPossibleExport(Export(iKey, newP, true));
}
}
- foreach (const QmlDirParser::Component &component, info.components()) {
- foreach (const Export &e, cImport.possibleExports)
+ for (const QmlDirParser::Component &component : info.components()) {
+ for (const Export &e : std::as_const(cImport.possibleExports))
_dependencies.addExport(component.fileName, e.exportName, e.pathRequired, e.typeName);
}
diff --git a/src/libs/qmljs/qmljsdocument.h b/src/libs/qmljs/qmljsdocument.h
index e3beada0f0..8889356e8e 100644
--- a/src/libs/qmljs/qmljsdocument.h
+++ b/src/libs/qmljs/qmljsdocument.h
@@ -154,13 +154,13 @@ public:
QByteArray fingerprint() const
{ return _fingerprint; }
- QList<QmlDirParser::Component> components() const
+ const QList<QmlDirParser::Component> components() const
{ return _components; }
QList<QmlDirParser::Plugin> plugins() const
{ return _plugins; }
- QStringList typeInfos() const
+ const QStringList typeInfos() const
{ return _typeinfos; }
FakeMetaObjectList metaObjects() const
@@ -169,7 +169,7 @@ public:
void setMetaObjects(const FakeMetaObjectList &objects)
{ _metaObjects = objects; }
- QList<ModuleApiInfo> moduleApis() const
+ const QList<ModuleApiInfo> moduleApis() const
{ return _moduleApis; }
void setModuleApis(const QList<ModuleApiInfo> &apis)
diff --git a/src/libs/qmljs/qmljsfindexportedcpptypes.cpp b/src/libs/qmljs/qmljsfindexportedcpptypes.cpp
index 641ffb5068..b0a78cd36b 100644
--- a/src/libs/qmljs/qmljsfindexportedcpptypes.cpp
+++ b/src/libs/qmljs/qmljsfindexportedcpptypes.cpp
@@ -637,9 +637,9 @@ static QString toQmlType(const FullySpecifiedType &type)
static Class *lookupClass(const QString &expression, Scope *scope, TypeOfExpression &typeOf)
{
- QList<LookupItem> results = typeOf(expression.toUtf8(), scope);
+ const QList<LookupItem> results = typeOf(expression.toUtf8(), scope);
Class *klass = nullptr;
- foreach (const LookupItem &item, results) {
+ for (const LookupItem &item : results) {
if (item.declaration()) {
klass = item.declaration()->asClass();
if (klass)
@@ -707,8 +707,8 @@ static LanguageUtils::FakeMetaObject::Ptr buildFakeMetaObject(
if (QtEnum *qtEnum = member->asQtEnum()) {
// find the matching enum
Enum *e = nullptr;
- QList<LookupItem> result = typeOf(namePrinter.prettyName(qtEnum->name()).toUtf8(), klass);
- foreach (const LookupItem &item, result) {
+ const QList<LookupItem> result = typeOf(namePrinter.prettyName(qtEnum->name()).toUtf8(), klass);
+ for (const LookupItem &item : result) {
if (item.declaration()) {
e = item.declaration()->asEnum();
if (e)
@@ -757,7 +757,7 @@ static void buildExportedQmlObjects(
if (cppExports.isEmpty())
return;
- foreach (const ExportedQmlType &exportedType, cppExports) {
+ for (const ExportedQmlType &exportedType : cppExports) {
Class *klass = nullptr;
if (!exportedType.typeExpression.isEmpty())
klass = lookupClass(exportedType.typeExpression, exportedType.scope, typeOf);
@@ -785,7 +785,7 @@ static void buildContextProperties(
{
using namespace LanguageUtils;
- foreach (const ContextProperty &property, contextPropertyDescriptions) {
+ for (const ContextProperty &property : contextPropertyDescriptions) {
Scope *scope = doc->scopeAt(property.line, property.column);
QList<LookupItem> results = typeOf(property.expression.toUtf8(), scope);
QString typeName;
@@ -880,7 +880,7 @@ QStringList FindExportedCppTypes::operator()(const CPlusPlus::Document::Ptr &doc
m_exportedTypes += it.value();
fileNames += QLatin1String(it.key()->fileName());
}
- foreach (const LanguageUtils::FakeMetaObject::Ptr &fmo, extraFakeMetaObjects) {
+ for (const LanguageUtils::FakeMetaObject::Ptr &fmo : std::as_const(extraFakeMetaObjects)) {
fmo->updateFingerprint();
m_exportedTypes += fmo;
}
diff --git a/src/libs/qmljs/qmljsicons.cpp b/src/libs/qmljs/qmljsicons.cpp
index fa8242a121..d4ef10c300 100644
--- a/src/libs/qmljs/qmljsicons.cpp
+++ b/src/libs/qmljs/qmljsicons.cpp
@@ -61,12 +61,14 @@ void Icons::setIconFilesPath(const QString &iconPath)
if (debug)
qCDebug(iconsLog) << "parsing" << iconPath;
QDir topDir(iconPath);
- foreach (const QFileInfo &subDirInfo, topDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot)) {
+ QList<QFileInfo> dirs = topDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
+ for (const QFileInfo &subDirInfo : dirs) {
if (debug)
qCDebug(iconsLog) << "parsing" << subDirInfo.absoluteFilePath();
const QString packageName = subDirInfo.fileName();
QDir subDir(subDirInfo.absoluteFilePath() + QLatin1String("/16x16"));
- foreach (const QFileInfo &iconFile, subDir.entryInfoList(QDir::Files)) {
+ QList<QFileInfo> files = subDir.entryInfoList(QDir::Files);
+ for (const QFileInfo &iconFile : files) {
QIcon icon(iconFile.absoluteFilePath());
if (icon.isNull()) {
if (debug)
diff --git a/src/libs/qmljs/qmljsimportdependencies.cpp b/src/libs/qmljs/qmljsimportdependencies.cpp
index df87a89cd8..92cdb26139 100644
--- a/src/libs/qmljs/qmljsimportdependencies.cpp
+++ b/src/libs/qmljs/qmljsimportdependencies.cpp
@@ -188,7 +188,7 @@ void ImportKey::addToHash(QCryptographicHash &hash) const
hash.addData(reinterpret_cast<const char *>(&type), sizeof(type));
hash.addData(reinterpret_cast<const char *>(&majorVersion), sizeof(majorVersion));
hash.addData(reinterpret_cast<const char *>(&minorVersion), sizeof(minorVersion));
- foreach (const QString &s, splitPath) {
+ for (const QString &s : splitPath) {
hash.addData("/", 1);
hash.addData(reinterpret_cast<const char *>(s.constData()), sizeof(QChar) * s.size());
}
@@ -484,7 +484,7 @@ size_t qHash(const ImportKey &info)
{
size_t res = ::qHash(info.type) ^
::qHash(info.majorVersion) ^ ::qHash(info.minorVersion);
- foreach (const QString &s, info.splitPath)
+ for (const QString &s : std::as_const(info.splitPath))
res = res ^ ::qHash(s);
return res;
}
@@ -546,7 +546,7 @@ QByteArray DependencyInfo::calculateFingerprint(const ImportDependencies &deps)
rootImport.addToHash(hash);
QStringList coreImports = Utils::toList(allCoreImports);
coreImports.sort();
- foreach (const QString importId, coreImports) {
+ for (const QString &importId : std::as_const(coreImports)) {
hash.addData(reinterpret_cast<const char*>(importId.constData()), importId.size() * sizeof(QChar));
QByteArray coreImportFingerprint = deps.coreImport(importId).fingerprint;
hash.addData(coreImportFingerprint);
@@ -612,7 +612,7 @@ void ImportDependencies::filter(const ViewerContext &vContext)
const CoreImport &cImport = j.value();
if (languageIsCompatible(vContext.language, cImport.language)) {
QList<Export> newExports;
- foreach (const Export &e, cImport.possibleExports) {
+ for (const Export &e : std::as_const(cImport.possibleExports)) {
++benchMark.nPossibleExports;
if (e.visibleInVContext(vContext)) {
newExports.append(e);
@@ -660,10 +660,10 @@ void ImportDependencies::iterateOnCandidateImports(
default:
{
const QStringList imp = m_importCache.value(key.flatKey());
- foreach (const QString &cImportName, imp) {
+ for (const QString &cImportName : imp) {
CoreImport cImport = coreImport(cImportName);
if (languageIsCompatible(vContext.language, cImport.language)) {
- foreach (const Export e, cImport.possibleExports) {
+ for (const Export e : std::as_const(cImport.possibleExports)) {
++benchMark.nPossibleExports;
if (e.visibleInVContext(vContext)) {
ImportMatchStrength m = e.exportName.matchImport(key, vContext);
@@ -683,10 +683,10 @@ void ImportDependencies::iterateOnCandidateImports(
while (lb != end) {
ImportKey::DirCompareInfo c = key.compareDir(lb.key());
if (c == ImportKey::SameDir) {
- foreach (const QString &cImportName, lb.value()) {
+ for (const QString &cImportName : std::as_const(lb.value())) {
CoreImport cImport = coreImport(cImportName);
if (languageIsCompatible(vContext.language, cImport.language)) {
- foreach (const Export e, cImport.possibleExports) {
+ for (const Export e : std::as_const(cImport.possibleExports)) {
++benchMark.nPossibleExports;
if (e.visibleInVContext(vContext)) {
ImportMatchStrength m = e.exportName.matchImport(key, vContext);
@@ -754,19 +754,19 @@ void ImportDependencies::addCoreImport(const CoreImport &import)
CoreImport newImport = import;
if (m_coreImports.contains(import.importId)) {
CoreImport oldVal = m_coreImports.value(import.importId);
- foreach (const Export &e, oldVal.possibleExports) {
+ for (const Export &e : std::as_const(oldVal.possibleExports)) {
if (e.intrinsic)
removeImportCacheEntry(e.exportName, import.importId);
else
newImport.possibleExports.append(e);
}
}
- foreach (const Export &e, import.possibleExports)
+ for (const Export &e : std::as_const(import.possibleExports))
m_importCache[e.exportName].append(import.importId);
m_coreImports.insert(newImport.importId, newImport);
if (importsLog().isDebugEnabled()) {
QString msg = QString::fromLatin1("added import %1 for").arg(newImport.importId);
- foreach (const Export &e, newImport.possibleExports)
+ for (const Export &e : std::as_const(newImport.possibleExports))
msg += QString::fromLatin1("\n %1(%2)")
.arg(e.exportName.toString(), e.pathRequired.toUserOutput());
qCDebug(importsLog) << msg;
@@ -781,7 +781,7 @@ void ImportDependencies::removeCoreImport(const QString &importId)
}
CoreImport &cImport = m_coreImports[importId];
QList<Export> newExports;
- foreach (const Export &e, cImport.possibleExports)
+ for (const Export &e : std::as_const(cImport.possibleExports))
if (e.intrinsic)
removeImportCacheEntry(e.exportName, importId);
else
@@ -867,10 +867,10 @@ void ImportDependencies::iterateOnLibraryImports(
iter_t end = m_importCache.constEnd();
while (i != end && i.key().type == ImportType::Library) {
qCDebug(importsLog) << "libloop:" << i.key().toString() << i.value();
- foreach (const QString &cImportName, i.value()) {
+ for (const QString &cImportName : i.value()) {
CoreImport cImport = coreImport(cImportName);
if (languageIsCompatible(vContext.language, cImport.language)) {
- foreach (const Export &e, cImport.possibleExports) {
+ for (const Export &e : std::as_const(cImport.possibleExports)) {
++benchMark.nPossibleExports;
if (e.visibleInVContext(vContext) && e.exportName.type == ImportType::Library) {
ImportMatchStrength m = e.exportName.matchImport(i.key(), vContext);
@@ -903,10 +903,10 @@ void ImportDependencies::iterateOnSubImports(
ImportKey::DirCompareInfo c = baseKey.compareDir(i.key());
if (c != ImportKey::SameDir && c != ImportKey::SecondInFirst)
break;
- foreach (const QString &cImportName, i.value()) {
+ for (const QString &cImportName : i.value()) {
CoreImport cImport = coreImport(cImportName);
if (languageIsCompatible(vContext.language, cImport.language)) {
- foreach (const Export &e, cImport.possibleExports) {
+ for (const Export &e : std::as_const(cImport.possibleExports)) {
++benchMark.nPossibleExports;
if (e.visibleInVContext(vContext)) {
ImportMatchStrength m = e.exportName.matchImport(i.key(), vContext);
@@ -961,14 +961,15 @@ void ImportDependencies::checkConsistency() const
for (auto j = m_importCache.cbegin(), end = m_importCache.cend(); j != end; ++j) {
for (const QString &s : j.value()) {
bool found = false;
- foreach (const Export &e, m_coreImports.value(s).possibleExports)
+ const QList<Export> exports = m_coreImports.value(s).possibleExports;
+ for (const Export &e : exports)
if (e.exportName == j.key())
found = true;
Q_ASSERT(found); Q_UNUSED(found)
}
}
for (auto i = m_coreImports.cbegin(), end = m_coreImports.cend(); i != end; ++i) {
- foreach (const Export &e, i.value().possibleExports) {
+ for (const Export &e : std::as_const(i.value().possibleExports)) {
if (!m_importCache.value(e.exportName).contains(i.key())) {
qCWarning(importsLog) << e.exportName.toString();
qCWarning(importsLog) << i.key();
diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 91dbf8eae8..d7198a26d1 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -427,7 +427,7 @@ const CppComponentValue *CppComponentValue::prototype() const
Use this function rather than calling prototype() in a loop, as it avoids
cycles.
*/
-QList<const CppComponentValue *> CppComponentValue::prototypes() const
+const QList<const CppComponentValue *> CppComponentValue::prototypes() const
{
QList<const CppComponentValue *> protos;
for (const CppComponentValue *it = this; it; it = it->prototype()) {
@@ -457,7 +457,7 @@ QString CppComponentValue::defaultPropertyName() const
QString CppComponentValue::propertyType(const QString &propertyName) const
{
- foreach (const CppComponentValue *it, prototypes()) {
+ for (const CppComponentValue *it : prototypes()) {
FakeMetaObject::ConstPtr iter = it->m_metaObject;
int propIdx = iter->propertyIndex(propertyName);
if (propIdx != -1)
@@ -468,7 +468,7 @@ QString CppComponentValue::propertyType(const QString &propertyName) const
bool CppComponentValue::isListProperty(const QString &propertyName) const
{
- foreach (const CppComponentValue *it, prototypes()) {
+ for (const CppComponentValue *it : prototypes()) {
FakeMetaObject::ConstPtr iter = it->m_metaObject;
int propIdx = iter->propertyIndex(propertyName);
if (propIdx != -1)
@@ -479,7 +479,7 @@ bool CppComponentValue::isListProperty(const QString &propertyName) const
FakeMetaEnum CppComponentValue::getEnum(const QString &typeName, const CppComponentValue **foundInScope) const
{
- foreach (const CppComponentValue *it, prototypes()) {
+ for (const CppComponentValue *it : prototypes()) {
FakeMetaObject::ConstPtr iter = it->m_metaObject;
const int index = iter->enumeratorIndex(typeName);
if (index != -1) {
@@ -495,7 +495,7 @@ FakeMetaEnum CppComponentValue::getEnum(const QString &typeName, const CppCompon
const QmlEnumValue *CppComponentValue::getEnumValue(const QString &typeName, const CppComponentValue **foundInScope) const
{
- foreach (const CppComponentValue *it, prototypes()) {
+ for (const CppComponentValue *it : prototypes()) {
if (const QmlEnumValue *e = it->m_enums.value(typeName)) {
if (foundInScope)
*foundInScope = it;
@@ -544,7 +544,7 @@ const ObjectValue *CppComponentValue::signalScope(const QString &signalName) con
bool CppComponentValue::isWritable(const QString &propertyName) const
{
- foreach (const CppComponentValue *it, prototypes()) {
+ for (const CppComponentValue *it : prototypes()) {
FakeMetaObject::ConstPtr iter = it->m_metaObject;
int propIdx = iter->propertyIndex(propertyName);
if (propIdx != -1)
@@ -555,7 +555,7 @@ bool CppComponentValue::isWritable(const QString &propertyName) const
bool CppComponentValue::isPointer(const QString &propertyName) const
{
- foreach (const CppComponentValue *it, prototypes()) {
+ for (const CppComponentValue *it : prototypes()) {
FakeMetaObject::ConstPtr iter = it->m_metaObject;
int propIdx = iter->propertyIndex(propertyName);
if (propIdx != -1)
@@ -574,7 +574,7 @@ bool CppComponentValue::hasLocalProperty(const QString &typeName) const
bool CppComponentValue::hasProperty(const QString &propertyName) const
{
- foreach (const CppComponentValue *it, prototypes()) {
+ for (const CppComponentValue *it : prototypes()) {
FakeMetaObject::ConstPtr iter = it->m_metaObject;
int propIdx = iter->propertyIndex(propertyName);
if (propIdx != -1)
@@ -585,7 +585,7 @@ bool CppComponentValue::hasProperty(const QString &propertyName) const
bool CppComponentValue::isDerivedFrom(FakeMetaObject::ConstPtr base) const
{
- foreach (const CppComponentValue *it, prototypes()) {
+ for (const CppComponentValue *it : prototypes()) {
FakeMetaObject::ConstPtr iter = it->m_metaObject;
if (iter == base)
return true;
@@ -1326,7 +1326,7 @@ CppQmlTypesLoader::BuiltinObjects CppQmlTypesLoader::loadQmlTypes(const QFileInf
QHash<QString, FakeMetaObject::ConstPtr> newObjects;
QStringList newDependencies;
- foreach (const QFileInfo &qmlTypeFile, qmlTypeFiles) {
+ for (const QFileInfo &qmlTypeFile : qmlTypeFiles) {
QString error, warning;
QFile file(qmlTypeFile.absoluteFilePath());
if (file.open(QIODevice::ReadOnly)) {
@@ -1400,8 +1400,8 @@ template <typename T>
void CppQmlTypes::load(const QString &originId, const T &fakeMetaObjects, const QString &overridePackage)
{
QList<CppComponentValue *> newCppTypes;
- foreach (const FakeMetaObject::ConstPtr &fmo, fakeMetaObjects) {
- foreach (const FakeMetaObject::Export &exp, fmo->exports()) {
+ for (const FakeMetaObject::ConstPtr &fmo : fakeMetaObjects) {
+ for (const FakeMetaObject::Export &exp : fmo->exports()) {
QString package = exp.package;
if (package.isEmpty())
package = overridePackage;
@@ -1422,7 +1422,7 @@ void CppQmlTypes::load(const QString &originId, const T &fakeMetaObjects, const
}
// set prototypes of cpp types
- foreach (CppComponentValue *object, newCppTypes) {
+ for (CppComponentValue *object : std::as_const(newCppTypes)) {
const QString &protoCppName = object->metaObject()->superclassName();
const CppComponentValue *proto = objectByCppName(protoCppName);
if (proto)
@@ -1441,11 +1441,12 @@ QList<const CppComponentValue *> CppQmlTypes::createObjectsForImport(const QStri
QList<const CppComponentValue *> newObjects;
// make new exported objects
- foreach (const FakeMetaObjectWithOrigin &fmoo, m_fakeMetaObjectsByPackage.value(package)) {
+ const QSet<FakeMetaObjectWithOrigin> fmoos = m_fakeMetaObjectsByPackage.value(package);
+ for (const FakeMetaObjectWithOrigin &fmoo : fmoos) {
const FakeMetaObject::ConstPtr &fmo = fmoo.fakeMetaObject;
// find the highest-version export for each alias
QHash<QString, FakeMetaObject::Export> bestExports;
- foreach (const FakeMetaObject::Export &exp, fmo->exports()) {
+ for (const FakeMetaObject::Export &exp : fmo->exports()) {
if (exp.package != package || (version.isValid() && exp.version > version))
continue;
@@ -1465,7 +1466,7 @@ QList<const CppComponentValue *> CppQmlTypes::createObjectsForImport(const QStri
continue;
ComponentVersion cppVersion;
- foreach (const FakeMetaObject::Export &bestExport, bestExports) {
+ for (const FakeMetaObject::Export &bestExport : std::as_const(bestExports)) {
QString name = bestExport.type;
bool exported = true;
if (name.isEmpty()) {
@@ -1495,7 +1496,7 @@ QList<const CppComponentValue *> CppQmlTypes::createObjectsForImport(const QStri
// set their prototypes, creating them if necessary
// this ensures that the prototypes of C++ objects are resolved correctly and with the correct
// revision, and cannot be hidden by other objects.
- foreach (const CppComponentValue *cobject, newObjects) {
+ for (const CppComponentValue *cobject : std::as_const(newObjects)) {
CppComponentValue *object = const_cast<CppComponentValue *>(cobject);
while (!object->prototype()) {
const QString &protoCppName = object->metaObject()->superclassName();
@@ -1860,7 +1861,7 @@ bool ASTObjectValue::getSourceLocation(Utils::FilePath *fileName, int *line, int
void ASTObjectValue::processMembers(MemberProcessor *processor) const
{
- foreach (ASTPropertyReference *ref, m_properties) {
+ for (ASTPropertyReference *ref : m_properties) {
uint pFlags = PropertyInfo::Readable;
if (!ref->ast()->isReadonly())
pFlags |= PropertyInfo::Writeable;
@@ -1868,7 +1869,7 @@ void ASTObjectValue::processMembers(MemberProcessor *processor) const
// ### Should get a different value?
processor->processGeneratedSlot(ref->onChangedSlotName(), ref);
}
- foreach (ASTSignal *ref, m_signals) {
+ for (ASTSignal *ref : m_signals) {
processor->processSignal(ref->ast()->name.toString(), ref);
// ### Should get a different value?
processor->processGeneratedSlot(ref->slotName(), ref);
diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h
index da8dd95869..919ff60ef4 100644
--- a/src/libs/qmljs/qmljsinterpreter.h
+++ b/src/libs/qmljs/qmljsinterpreter.h
@@ -577,7 +577,7 @@ public:
using ObjectValue::prototype;
const CppComponentValue *prototype() const;
- QList<const CppComponentValue *> prototypes() const;
+ const QList<const CppComponentValue *> prototypes() const;
LanguageUtils::FakeMetaObject::ConstPtr metaObject() const;
diff --git a/src/libs/qmljs/qmljslineinfo.cpp b/src/libs/qmljs/qmljslineinfo.cpp
index 9ef80b72f8..f44fd51b96 100644
--- a/src/libs/qmljs/qmljslineinfo.cpp
+++ b/src/libs/qmljs/qmljslineinfo.cpp
@@ -105,7 +105,7 @@ QString LineInfo::trimmedCodeLine(const QString &t)
yyLinizerState.tokens = scanner(t, startState);
QString trimmed;
int previousTokenEnd = 0;
- foreach (const Token &token, yyLinizerState.tokens) {
+ for (const Token &token : std::as_const(yyLinizerState.tokens)) {
trimmed.append(t.mid(previousTokenEnd, token.begin() - previousTokenEnd));
if (token.is(Token::String)) {
@@ -131,7 +131,7 @@ QString LineInfo::trimmedCodeLine(const QString &t)
}
bool isBinding = false;
- foreach (const Token &token, yyLinizerState.tokens) {
+ for (const Token &token : std::as_const(yyLinizerState.tokens)) {
if (token.is(Token::Colon)) {
isBinding = true;
break;
diff --git a/src/libs/qmljs/qmljsplugindumper.cpp b/src/libs/qmljs/qmljsplugindumper.cpp
index 882d3b8ef5..014de3974f 100644
--- a/src/libs/qmljs/qmljsplugindumper.cpp
+++ b/src/libs/qmljs/qmljsplugindumper.cpp
@@ -133,14 +133,15 @@ void PluginDumper::onLoadPluginTypes(const Utils::FilePath &libraryPath,
}
// add typeinfo files listed in qmldir
- foreach (const QString &typeInfo, libraryInfo.typeInfos()) {
+ for (const QString &typeInfo : libraryInfo.typeInfos()) {
const FilePath pathNow = canonicalLibraryPath.resolvePath(typeInfo);
if (!plugin.typeInfoPaths.contains(pathNow) && pathNow.exists())
plugin.typeInfoPaths += pathNow;
}
// watch plugin libraries
- foreach (const QmlDirParser::Plugin &plugin, snapshot.libraryInfo(canonicalLibraryPath).plugins()) {
+ const QList<QmlDirParser::Plugin> plugins = snapshot.libraryInfo(canonicalLibraryPath).plugins();
+ for (const QmlDirParser::Plugin &plugin : plugins) {
const QString pluginLibrary = resolvePlugin(canonicalLibraryPath.toString(), plugin.path, plugin.name);
if (!pluginLibrary.isEmpty()) {
if (!pluginWatcher()->watchesFile(pluginLibrary))
@@ -165,7 +166,7 @@ void PluginDumper::onLoadPluginTypes(const Utils::FilePath &libraryPath,
void PluginDumper::dumpAllPlugins()
{
- foreach (const Plugin &plugin, m_plugins) {
+ for (const Plugin &plugin : std::as_const(m_plugins)) {
dump(plugin);
}
}
@@ -676,7 +677,7 @@ QString PluginDumper::resolvePlugin(const QDir &qmldirPath, const QString &qmldi
if (!qmldirPluginPathIsRelative)
searchPaths.prepend(qmldirPluginPath);
- foreach (const QString &pluginPath, searchPaths) {
+ for (const QString &pluginPath : std::as_const(searchPaths)) {
QString resolvedPath;
@@ -690,7 +691,7 @@ QString PluginDumper::resolvePlugin(const QDir &qmldirPath, const QString &qmldi
}
QDir dir(resolvedPath);
- foreach (const QString &suffix, suffixes) {
+ for (const QString &suffix : suffixes) {
QString pluginFileName = prefix;
pluginFileName += baseName;
diff --git a/src/libs/qmljs/qmljsreformatter.cpp b/src/libs/qmljs/qmljsreformatter.cpp
index 93074af8c9..bc22b9aaed 100644
--- a/src/libs/qmljs/qmljsreformatter.cpp
+++ b/src/libs/qmljs/qmljsreformatter.cpp
@@ -273,7 +273,7 @@ protected:
const int minContentLength = 10;
qreal result = badnessFromSplits;
- foreach (const QString &line, lines) {
+ for (const QString &line : std::as_const(lines)) {
// really long lines should be avoided at all cost
if (line.size() > strongMaxLineLength) {
result += 50 + (line.size() - strongMaxLineLength);
diff --git a/src/libs/qmljs/qmljsscopebuilder.cpp b/src/libs/qmljs/qmljsscopebuilder.cpp
index a2852c4c60..2e82b8fbd6 100644
--- a/src/libs/qmljs/qmljsscopebuilder.cpp
+++ b/src/libs/qmljs/qmljsscopebuilder.cpp
@@ -48,7 +48,7 @@ void ScopeBuilder::push(AST::Node *node)
const ObjectValue *owner = nullptr;
const Value *value = nullptr;
// try to find the name on the scope objects
- foreach (const ObjectValue *scope, _scopeChain->qmlScopeObjects()) {
+ for (const ObjectValue *scope : _scopeChain->qmlScopeObjects()) {
value = scope->lookupMember(name, _scopeChain->context(), &owner);
if (value)
break;
@@ -84,7 +84,7 @@ void ScopeBuilder::push(AST::Node *node)
void ScopeBuilder::push(const QList<AST::Node *> &nodes)
{
- foreach (Node *node, nodes)
+ for (Node *node : nodes)
push(node);
}
@@ -196,7 +196,7 @@ const Value *ScopeBuilder::scopeObjectLookup(AST::UiQualifiedId *id)
{
// do a name lookup on the scope objects
const Value *result = nullptr;
- foreach (const ObjectValue *scopeObject, _scopeChain->qmlScopeObjects()) {
+ for (const ObjectValue *scopeObject : _scopeChain->qmlScopeObjects()) {
const ObjectValue *object = scopeObject;
for (UiQualifiedId *it = id; it; it = it->next) {
if (it->name.isEmpty())
diff --git a/src/libs/qmljs/qmljsscopechain.cpp b/src/libs/qmljs/qmljsscopechain.cpp
index 5ba80fd713..fc426ee3f4 100644
--- a/src/libs/qmljs/qmljsscopechain.cpp
+++ b/src/libs/qmljs/qmljsscopechain.cpp
@@ -47,7 +47,7 @@ Document::Ptr QmlComponentChain::document() const
return m_document;
}
-QList<const QmlComponentChain *> QmlComponentChain::instantiatingComponents() const
+const QList<const QmlComponentChain *> QmlComponentChain::instantiatingComponents() const
{
return m_instantiatingComponents;
}
@@ -153,7 +153,7 @@ void ScopeChain::setQmlComponentChain(const QSharedPointer<const QmlComponentCha
m_qmlComponentScope = qmlComponentChain;
}
-QList<const ObjectValue *> ScopeChain::qmlScopeObjects() const
+const QList<const ObjectValue *> ScopeChain::qmlScopeObjects() const
{
return m_qmlScopeObjects;
}
@@ -212,7 +212,7 @@ QList<const ObjectValue *> ScopeChain::all() const
static void collectScopes(const QmlComponentChain *chain, QList<const ObjectValue *> *target)
{
- foreach (const QmlComponentChain *parent, chain->instantiatingComponents())
+ for (const QmlComponentChain *parent : chain->instantiatingComponents())
collectScopes(parent, target);
if (!chain->document())
@@ -237,7 +237,7 @@ void ScopeChain::update() const
// the root scope in js files doesn't see instantiating components
if (m_document->language() != Dialect::JavaScript || m_jsScopes.count() != 1) {
if (m_qmlComponentScope) {
- foreach (const QmlComponentChain *parent, m_qmlComponentScope->instantiatingComponents())
+ for (const QmlComponentChain *parent : m_qmlComponentScope->instantiatingComponents())
collectScopes(parent, &m_all);
}
}
@@ -265,7 +265,7 @@ void ScopeChain::update() const
static void addInstantiatingComponents(ContextPtr context, QmlComponentChain *chain)
{
const QRegularExpression importCommentPattern(QLatin1String("@scope\\s+(.*)"));
- foreach (const SourceLocation &commentLoc, chain->document()->engine()->comments()) {
+ for (const SourceLocation &commentLoc : chain->document()->engine()->comments()) {
const QString &comment = chain->document()->source().mid(commentLoc.begin(), commentLoc.length);
// find all @scope annotations
@@ -283,10 +283,10 @@ static void addInstantiatingComponents(ContextPtr context, QmlComponentChain *ch
.absoluteFilePath();
}
- foreach (const QmlComponentChain *c, chain->instantiatingComponents())
+ for (const QmlComponentChain *c : chain->instantiatingComponents())
additionalScopes.removeAll(c->document()->fileName());
- foreach (const Utils::FilePath &scope, additionalScopes) {
+ for (const Utils::FilePath &scope : std::as_const(additionalScopes)) {
Document::Ptr doc = context->snapshot().document(scope);
if (doc) {
QmlComponentChain *ch = new QmlComponentChain(doc);
@@ -322,8 +322,8 @@ void ScopeChain::initializeRootScope()
// add scope chains for all components that import this file
// unless there's .pragma library
if (!m_document->bind()->isJsLibrary()) {
- foreach (Document::Ptr otherDoc, snapshot) {
- foreach (const ImportInfo &import, otherDoc->bind()->imports()) {
+ for (Document::Ptr otherDoc : snapshot) {
+ for (const ImportInfo &import : otherDoc->bind()->imports()) {
if ((import.type() == ImportType::File
&& m_document->fileName().toString() == import.path())
|| (import.type() == ImportType::QrcFile
@@ -358,7 +358,7 @@ void ScopeChain::makeComponentChain(
const Bind *bind = doc->bind();
// add scopes for all components instantiating this one
- foreach (Document::Ptr otherDoc, snapshot) {
+ for (Document::Ptr otherDoc : snapshot) {
if (otherDoc == doc)
continue;
if (otherDoc->bind()->usesQmlPrototype(bind->rootObjectValue(), m_context)) {
diff --git a/src/libs/qmljs/qmljsscopechain.h b/src/libs/qmljs/qmljsscopechain.h
index f3b8ae2bb5..f1098daa6f 100644
--- a/src/libs/qmljs/qmljsscopechain.h
+++ b/src/libs/qmljs/qmljsscopechain.h
@@ -26,7 +26,7 @@ public:
~QmlComponentChain();
Document::Ptr document() const;
- QList<const QmlComponentChain *> instantiatingComponents() const;
+ const QList<const QmlComponentChain *> instantiatingComponents() const;
const ObjectValue *idScope() const;
const ObjectValue *rootObjectScope() const;
@@ -62,7 +62,7 @@ public:
QSharedPointer<const QmlComponentChain> qmlComponentChain() const;
void setQmlComponentChain(const QSharedPointer<const QmlComponentChain> &qmlComponentChain);
- QList<const ObjectValue *> qmlScopeObjects() const;
+ const QList<const ObjectValue *> qmlScopeObjects() const;
void setQmlScopeObjects(const QList<const ObjectValue *> &qmlScopeObjects);
const TypeScope *qmlTypes() const;