diff options
-rw-r--r-- | sources/shiboken2/generator/shiboken2/cppgenerator.cpp | 4 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/sample.cpp | 12 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/sample.h | 3 |
3 files changed, 15 insertions, 4 deletions
diff --git a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp index a2b497132..8fbce8091 100644 --- a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp @@ -515,7 +515,7 @@ void CppGenerator::generateClass(QTextStream &s, GeneratorContext &classContext) writeMappingMethods(s, metaClass, classContext); } - if (metaClass->hasComparisonOperatorOverload()) { + if (!metaClass->isNamespace() && metaClass->hasComparisonOperatorOverload()) { s << "// Rich comparison" << endl; writeRichCompareFunction(s, classContext); } @@ -3670,7 +3670,7 @@ void CppGenerator::writeClassDefinition(QTextStream &s, } QString tp_richcompare = QString(QLatin1Char('0')); - if (metaClass->hasComparisonOperatorOverload()) + if (!metaClass->isNamespace() && metaClass->hasComparisonOperatorOverload()) tp_richcompare = cpythonBaseName(metaClass) + QLatin1String("_richcompare"); QString tp_getset = QString(QLatin1Char('0')); diff --git a/sources/shiboken2/tests/libsample/sample.cpp b/sources/shiboken2/tests/libsample/sample.cpp index fa1e1fda3..850674bd9 100644 --- a/sources/shiboken2/tests/libsample/sample.cpp +++ b/sources/shiboken2/tests/libsample/sample.cpp @@ -28,12 +28,20 @@ #include "sample.h" -sample::sample::sample(int value) : m_value(value) +namespace sample +{ + +sample::sample(int value) : m_value(value) { } -int sample::sample::value() const +int sample::value() const { return m_value; } +bool operator==(const sample&s1, const sample&s2) +{ + return s1.value() == s2.value(); +} +} // namespace sample diff --git a/sources/shiboken2/tests/libsample/sample.h b/sources/shiboken2/tests/libsample/sample.h index 46e3d0d1a..68b54e067 100644 --- a/sources/shiboken2/tests/libsample/sample.h +++ b/sources/shiboken2/tests/libsample/sample.h @@ -43,6 +43,9 @@ namespace sample private: int m_value; }; + + // shiboken must not generate richcompare for namespace sample + LIBSAMPLE_API bool operator==(const sample&s1, const sample&s2); } #endif |