aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/generator
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2024-01-26 12:38:32 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2024-01-29 10:14:12 +0100
commit791f7c7e882c3c1003c0f83173495d513e452d1f (patch)
treedf567ae3346e39389f5eb9ee49091226b5781460 /sources/shiboken6/generator
parent2491dac9095aeaeedad7ccb6e1b04ec0765e1b86 (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')
-rw-r--r--sources/shiboken6/generator/generator.cpp5
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.cpp26
-rw-r--r--sources/shiboken6/generator/shiboken/headergenerator.cpp6
-rw-r--r--sources/shiboken6/generator/shiboken/shibokengenerator.cpp2
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;
}