aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/tests/testabstractmetaclass.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-06-12 09:32:51 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-06-12 11:10:52 +0200
commit066957b44c83ed3cbadeda756923d1a891ecee72 (patch)
tree5b350f60682d869d00d7e43273df38dc85b5efb8 /sources/shiboken2/ApiExtractor/tests/testabstractmetaclass.cpp
parent11c2f77015852db16dbf6355f8615413b212fcda (diff)
shiboken: Resolve typedef'ed base classes
Add a resolve function. Change-Id: If85c1de402f212e4c16b18e2ec8ad97075ac3cff Fixes: PYSIDE-1327 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2/ApiExtractor/tests/testabstractmetaclass.cpp')
-rw-r--r--sources/shiboken2/ApiExtractor/tests/testabstractmetaclass.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/sources/shiboken2/ApiExtractor/tests/testabstractmetaclass.cpp b/sources/shiboken2/ApiExtractor/tests/testabstractmetaclass.cpp
index f2e15fdb0..f0aa4a318 100644
--- a/sources/shiboken2/ApiExtractor/tests/testabstractmetaclass.cpp
+++ b/sources/shiboken2/ApiExtractor/tests/testabstractmetaclass.cpp
@@ -588,4 +588,34 @@ void TestAbstractMetaClass::testIsPolymorphic()
QVERIFY(!a->isPolymorphic());
}
+void TestAbstractMetaClass::testClassTypedefedBaseClass()
+{
+ const char cppCode[] =R"CPP(
+class Base {
+};
+
+using BaseAlias1 = Base;
+using BaseAlias2 = BaseAlias1;
+
+class Derived : public BaseAlias2 {
+};
+)CPP";
+ const char xmlCode[] = R"XML(
+<typesystem package='Foo'>
+ <object-type name='Base'/>
+ <object-type name='Derived'/>
+</typesystem>
+)XML";
+
+ QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
+ QVERIFY(!builder.isNull());
+ AbstractMetaClassList classes = builder->classes();
+ QCOMPARE(classes.count(), 2);
+ auto base = AbstractMetaClass::findClass(classes, QLatin1String("Base"));
+ QVERIFY(base);
+ auto derived = AbstractMetaClass::findClass(classes, QLatin1String("Derived"));
+ QVERIFY(derived);
+ QCOMPARE(derived->baseClasses().value(0), base);
+}
+
QTEST_APPLESS_MAIN(TestAbstractMetaClass)