diff options
Diffstat (limited to 'sources/shiboken6/ApiExtractor/abstractmetafield.cpp')
-rw-r--r-- | sources/shiboken6/ApiExtractor/abstractmetafield.cpp | 58 |
1 files changed, 24 insertions, 34 deletions
diff --git a/sources/shiboken6/ApiExtractor/abstractmetafield.cpp b/sources/shiboken6/ApiExtractor/abstractmetafield.cpp index 44e8ddc84..27a76d04d 100644 --- a/sources/shiboken6/ApiExtractor/abstractmetafield.cpp +++ b/sources/shiboken6/ApiExtractor/abstractmetafield.cpp @@ -1,30 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt for Python. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "abstractmetafield.h" #include "abstractmetabuilder.h" @@ -32,11 +7,16 @@ #include "abstractmetatype.h" #include "documentation.h" #include "modifications.h" -#include "typesystem.h" +#include "complextypeentry.h" +#include "typesystemtypeentry.h" #include "parser/codemodel.h" +#include "qtcompat.h" + #include <QtCore/QDebug> +using namespace Qt::StringLiterals; + class AbstractMetaFieldData : public QSharedData { public: @@ -56,15 +36,15 @@ AbstractMetaField::AbstractMetaField() : d(new AbstractMetaFieldData) AbstractMetaField::AbstractMetaField(const AbstractMetaField &) = default; AbstractMetaField &AbstractMetaField::operator=(const AbstractMetaField &) = default; -AbstractMetaField::AbstractMetaField(AbstractMetaField &&) = default; -AbstractMetaField &AbstractMetaField::operator=(AbstractMetaField &&) = default; +AbstractMetaField::AbstractMetaField(AbstractMetaField &&) noexcept = default; +AbstractMetaField &AbstractMetaField::operator=(AbstractMetaField &&) noexcept = default; AbstractMetaField::~AbstractMetaField() = default; // returned->setEnclosingClass(nullptr); std::optional<AbstractMetaField> AbstractMetaField::find(const AbstractMetaFieldList &haystack, - const QString &needle) + QStringView needle) { for (const auto &f : haystack) { if (f.name() == needle) @@ -76,7 +56,7 @@ std::optional<AbstractMetaField> /******************************************************************************* * Indicates that this field has a modification that removes it */ -bool AbstractMetaField::isModifiedRemoved(int types) const +bool AbstractMetaField::isModifiedRemoved() const { const FieldModificationList &mods = modifications(); for (const FieldModification &mod : mods) { @@ -87,6 +67,16 @@ bool AbstractMetaField::isModifiedRemoved(int types) const return false; } +bool AbstractMetaField::generateOpaqueContainer() const +{ + const FieldModificationList &mods = modifications(); + for (const FieldModification &mod : mods) { + if (mod.isOpaqueContainer()) + return true; + } + return false; +} + const AbstractMetaType &AbstractMetaField::type() const { return d->m_type; @@ -133,7 +123,7 @@ void AbstractMetaField::setStatic(bool s) QString AbstractMetaField::qualifiedCppName() const { - return enclosingClass()->qualifiedCppName() + QLatin1String("::") + return enclosingClass()->qualifiedCppName() + u"::"_s + originalName(); } @@ -212,7 +202,7 @@ TypeSystem::SnakeCase AbstractMetaField::snakeCase() const auto typeEntry = enclosingClass()->typeEntry(); const auto snakeCase = typeEntry->snakeCase(); return snakeCase != TypeSystem::SnakeCase::Unspecified - ? snakeCase : typeEntry->typeSystemTypeEntry()->snakeCase(); + ? snakeCase : typeSystemTypeEntry(typeEntry)->snakeCase(); } FieldModificationList AbstractMetaField::modifications() const |