Port from qAsConst() to std::as_const()

We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.

Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.

Task-number: QTBUG-99313
Change-Id: I88edd91395849574436299b8badda21bb93bea39
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marc Mutz
2022-10-07 14:46:06 +02:00
parent 90de29d530
commit 8eb4d52342
498 changed files with 1270 additions and 1270 deletions

View File

@@ -26,7 +26,7 @@ public:
return true;
SafeMatcher matcher;
for (const T *existingItem : qAsConst(_container)) {
for (const T *existingItem : std::as_const(_container)) {
if (Matcher::match(existingItem, item, &matcher))
return true;
}

View File

@@ -299,7 +299,7 @@ void Document::setLastModified(const QDateTime &lastModified)
QStringList Document::includedFiles() const
{
QStringList files;
for (const Include &i : qAsConst(_resolvedIncludes))
for (const Include &i : std::as_const(_resolvedIncludes))
files.append(i.resolvedFileName());
files.removeDuplicates();
return files;
@@ -488,7 +488,7 @@ Symbol *Document::lastVisibleSymbolAt(int line, int column) const
const Macro *Document::findMacroDefinitionAt(int line) const
{
for (const Macro &macro : qAsConst(_definedMacros)) {
for (const Macro &macro : std::as_const(_definedMacros)) {
if (macro.line() == line)
return &macro;
}
@@ -497,7 +497,7 @@ const Macro *Document::findMacroDefinitionAt(int line) const
const Document::MacroUse *Document::findMacroUseAt(int utf16charsOffset) const
{
for (const Document::MacroUse &use : qAsConst(_macroUses)) {
for (const Document::MacroUse &use : std::as_const(_macroUses)) {
if (use.containsUtf16charOffset(utf16charsOffset)
&& (utf16charsOffset < use.utf16charsBegin() + use.macro().nameToQString().size())) {
return &use;
@@ -508,7 +508,7 @@ const Document::MacroUse *Document::findMacroUseAt(int utf16charsOffset) const
const Document::UndefinedMacroUse *Document::findUndefinedMacroUseAt(int utf16charsOffset) const
{
for (const Document::UndefinedMacroUse &use : qAsConst(_undefinedMacroUses)) {
for (const Document::UndefinedMacroUse &use : std::as_const(_undefinedMacroUses)) {
if (use.containsUtf16charOffset(utf16charsOffset)
&& (utf16charsOffset < use.utf16charsBegin()
+ QString::fromUtf8(use.name(), use.name().size()).length()))

View File

@@ -399,7 +399,7 @@ private:
if (!klass) {
if (const auto namedType = baseExprType->asNamedType()) {
items = context.lookup(namedType->name(), item->scope());
for (const LookupItem &item : qAsConst(items)) {
for (const LookupItem &item : std::as_const(items)) {
if ((klass = item.type()->asClassType()))
break;
}
@@ -410,7 +410,7 @@ private:
items = context.lookup(memberAccess->member_name->name, klass);
if (items.isEmpty())
return Usage::Type::Other;
for (const LookupItem &item : qAsConst(items)) {
for (const LookupItem &item : std::as_const(items)) {
if (item.type()->asFunctionType()) {
if (item.type().isConst())
return Usage::Type::Read;

View File

@@ -1357,7 +1357,7 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name,
for (int i = 0; i < argumentCountOfSpecialization; ++i)
templParams.insert(templateSpecialization->templateParameterAt(i)->name(), i);
for (const Name *baseName : qAsConst(allBases)) {
for (const Name *baseName : std::as_const(allBases)) {
ClassOrNamespace *baseBinding = nullptr;
if (const Identifier *nameId = baseName->asNameId()) {
@@ -1435,7 +1435,7 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name,
// Find the missing bases for regular (non-template) types.
// Ex.: class A : public B<Some>::Type {};
for (const Name *baseName : qAsConst(allBases)) {
for (const Name *baseName : std::as_const(allBases)) {
ClassOrNamespace *binding = this;
if (const QualifiedNameId *qBaseName = baseName->asQualifiedNameId()) {
if (const Name *qualification = qBaseName->base())

View File

@@ -47,7 +47,7 @@ QString Macro::decoratedName() const
if (f._functionLike) {
text += QLatin1Char('(');
bool first = true;
for (const QByteArray &formal : qAsConst(_formals)) {
for (const QByteArray &formal : std::as_const(_formals)) {
if (! first)
text += QLatin1String(", ");
else

View File

@@ -522,7 +522,7 @@ QString MatchingText::insertMatchingBrace(const QTextCursor &cursor, const QStri
}
QString result;
for (const QChar &ch : qAsConst(text)) {
for (const QChar &ch : std::as_const(text)) {
if (ch == QLatin1Char('(')) result += QLatin1Char(')');
else if (ch == QLatin1Char('[')) result += QLatin1Char(']');
else if (ch == QLatin1Char('{')) result += QLatin1Char('}');