diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-01-26 12:38:32 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-01-29 10:14:12 +0100 |
commit | 791f7c7e882c3c1003c0f83173495d513e452d1f (patch) | |
tree | df567ae3346e39389f5eb9ee49091226b5781460 /sources/shiboken6/generator | |
parent | 2491dac9095aeaeedad7ccb6e1b04ec0765e1b86 (diff) |
shiboken6: Prepare for making the global scope prefix configurable
Use helper getFullTypeName() in more places.
Remove the global scope prefix from wrapper classes, they
should not cause ambiguities.
Pick-to: 6.6
Task-number: PYSIDE-2590
Change-Id: I47b6a69c27ea5469f8f11ec10fc349dec4689c60
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/generator')
4 files changed, 19 insertions, 20 deletions
diff --git a/sources/shiboken6/generator/generator.cpp b/sources/shiboken6/generator/generator.cpp index 9043550b3..7785b8f91 100644 --- a/sources/shiboken6/generator/generator.cpp +++ b/sources/shiboken6/generator/generator.cpp @@ -386,7 +386,7 @@ std::optional<DefaultValue> if (type.isNativePointer()) return DefaultValue(DefaultValue::Pointer, type.typeEntry()->qualifiedCppName()); if (type.isPointer()) - return DefaultValue(DefaultValue::Pointer, u"::"_s + type.typeEntry()->qualifiedCppName()); + return DefaultValue(DefaultValue::Pointer, getFullTypeName(type.typeEntry())); if (type.typeEntry()->isSmartPointer()) return minimalConstructor(api, type.typeEntry()); @@ -435,8 +435,7 @@ std::optional<DefaultValue> if (const auto nullValue = enumEntry->nullValue()) return DefaultValue(DefaultValue::Enum, nullValue->name()); return DefaultValue(DefaultValue::Custom, - u"static_cast< ::"_s + type->qualifiedCppName() - + u">(0)"_s); + "static_cast< "_L1 + getFullTypeName(type) + ">(0)"_L1); } if (type->isFlags()) { diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.cpp b/sources/shiboken6/generator/shiboken/cppgenerator.cpp index 547a6d60e..a2cb6399e 100644 --- a/sources/shiboken6/generator/shiboken/cppgenerator.cpp +++ b/sources/shiboken6/generator/shiboken/cppgenerator.cpp @@ -1355,7 +1355,7 @@ void CppGenerator::writeVirtualMethodNative(TextStream &s, if (isProtectedEnum) { QString typeCast; if (metaEnum->enclosingClass()) - typeCast += u"::"_s + metaEnum->enclosingClass()->qualifiedCppName(); + typeCast += getFullTypeName(metaEnum->enclosingClass()); typeCast += u"::"_s + metaEnum->name(); s << '(' << typeCast << ')'; } @@ -2312,8 +2312,7 @@ void CppGenerator::writeCppSelfDefinition(TextStream &s, && cppWrapper.testFlag(AbstractMetaClass::CppProtectedHackWrapper); Q_ASSERT(!useWrapperClass || context.useWrapper()); const QString className = useWrapperClass - ? context.wrapperName() - : (u"::"_s + metaClass->qualifiedCppName()); + ? context.wrapperName() : getFullTypeName(metaClass); writeInvalidPyObjectCheck(s, PYTHON_SELF_VAR, errorReturn); @@ -3772,7 +3771,8 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr if (!func->isStatic()) { const bool directInheritance = context.metaClass() == ownerClass; mc << (directInheritance ? "static_cast" : "reinterpret_cast") - << "<::" << wrapperName(ownerClass) << " *>(" << CPP_SELF_VAR << ")->"; + << '<' << wrapperName(ownerClass) << " *>(" + << CPP_SELF_VAR << ")->"; } if (!func->isAbstract()) @@ -4041,7 +4041,7 @@ void CppGenerator::writeSpecialCastFunction(TextStream &s, const AbstractMetaCla s << "else "; s << "if (desiredType == " << cpythonTypeNameExt(baseClass->typeEntry()) << ")\n" << indent - << "return static_cast< ::" << baseClass->qualifiedCppName() << " *>(me);\n" + << "return static_cast< " << getFullTypeName(baseClass) << " *>(me);\n" << outdent; firstClass = false; } @@ -5510,12 +5510,10 @@ void CppGenerator::writeClassRegister(TextStream &s, if (usePySideExtensions() && isQObject(metaClass)) { s << "Shiboken::ObjectType::setSubTypeInitHook(pyType, &PySide::initQObjectSubType);\n" << "PySide::initDynamicMetaObject(pyType, &::" - << metaClass->qualifiedCppName() << "::staticMetaObject, sizeof("; - if (shouldGenerateCppWrapper(metaClass)) - s << wrapperName(metaClass); - else - s << "::" << metaClass->qualifiedCppName(); - s << "));\n"; + << metaClass->qualifiedCppName() << "::staticMetaObject, sizeof(" + << (shouldGenerateCppWrapper(metaClass) + ? wrapperName(metaClass) : getFullTypeName(metaClass)) + << "));\n"; } s << outdent << "}\n"; @@ -5658,8 +5656,8 @@ void CppGenerator::writeTypeDiscoveryFunction(TextStream &s, if (ancestor->isPolymorphic()) { s << "if (instanceType == Shiboken::SbkType< ::" << ancestor->qualifiedCppName() << " >())\n" << indent - << "return dynamic_cast< ::" << metaClass->qualifiedCppName() - << " *>(reinterpret_cast< ::"<< ancestor->qualifiedCppName() + << "return dynamic_cast< " << getFullTypeName(metaClass) + << " *>(reinterpret_cast< "<< getFullTypeName(ancestor) << " *>(cptr));\n" << outdent; } else { qCWarning(lcShiboken).noquote().nospace() @@ -6310,7 +6308,7 @@ bool CppGenerator::finishGeneration() for (const AbstractMetaEnum &metaEnum : std::as_const(globalEnums)) if (!metaEnum.isAnonymous()) { ConfigurableScope configScope(s, metaEnum.typeEntry()); - s << "qRegisterMetaType< ::" << metaEnum.typeEntry()->qualifiedCppName() + s << "qRegisterMetaType< " << getFullTypeName(metaEnum.typeEntry()) << " >(\"" << metaEnum.name() << "\");\n"; } diff --git a/sources/shiboken6/generator/shiboken/headergenerator.cpp b/sources/shiboken6/generator/shiboken/headergenerator.cpp index 5bee1cb52..af6a42960 100644 --- a/sources/shiboken6/generator/shiboken/headergenerator.cpp +++ b/sources/shiboken6/generator/shiboken/headergenerator.cpp @@ -879,8 +879,10 @@ void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaEnum void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaClassCPtr &cppClass) { - s << "template<> inline PyTypeObject *SbkType< ::" << cppClass->qualifiedCppName() << " >() " - << "{ return reinterpret_cast<PyTypeObject *>(" << cpythonTypeNameExt(cppClass->typeEntry()) << "); }\n"; + s << "template<> inline PyTypeObject *SbkType< " + << getFullTypeName(cppClass) << " >() " + << "{ return reinterpret_cast<PyTypeObject *>(" + << cpythonTypeNameExt(cppClass->typeEntry()) << "); }\n"; } void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaType &metaType) diff --git a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp index 93b43660f..86c17c81c 100644 --- a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp +++ b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp @@ -553,7 +553,7 @@ QString ShibokenGenerator::cpythonWrapperCPtr(const TypeEntryCPtr &type, { if (!type->isWrapperType()) return QString(); - return u"reinterpret_cast< ::"_s + type->qualifiedCppName() + return u"reinterpret_cast< "_s + getFullTypeName(type) + u" *>(Shiboken::Conversions::cppPointer("_s + cpythonTypeNameExt(type) + u", reinterpret_cast<SbkObject *>("_s + argName + u")))"_s; } |