diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-06-12 09:32:51 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-06-12 11:10:52 +0200 |
commit | 066957b44c83ed3cbadeda756923d1a891ecee72 (patch) | |
tree | 5b350f60682d869d00d7e43273df38dc85b5efb8 /sources/shiboken2/ApiExtractor/tests/testabstractmetaclass.cpp | |
parent | 11c2f77015852db16dbf6355f8615413b212fcda (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.cpp | 30 |
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) |