aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sources/shiboken2/generator/shiboken2/cppgenerator.cpp4
-rw-r--r--sources/shiboken2/tests/libsample/sample.cpp12
-rw-r--r--sources/shiboken2/tests/libsample/sample.h3
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