aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-12-01 11:35:41 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-12-02 10:44:41 +0000
commit111f11e4d88ed89f961c73b25d48123f28909213 (patch)
treee8f783990cc6cdfe16eac3aa65544f7d8054bf35 /sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
parent4462db523fd8afc4177ad58caf1d5a955373bad5 (diff)
shiboken/MetaLang: Add information about override/final
Take over information from code model and test. Change-Id: Ibed2973e09b117966ed241798125f60ba337b0e9 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp')
-rw-r--r--sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
index 8192291bd..fc990deb7 100644
--- a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
+++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
@@ -1285,6 +1285,9 @@ AbstractMetaClass *AbstractMetaBuilderPrivate::traverseClass(const FileModelItem
AbstractMetaClass *metaClass = q->createMetaClass();
metaClass->setTypeEntry(type);
+ if (classItem->isFinal())
+ *metaClass += AbstractMetaAttributes::FinalCppClass;
+
QStringList baseClassNames;
const QVector<_ClassModelItem::BaseClass> &baseClasses = classItem->baseClasses();
for (const _ClassModelItem::BaseClass &baseClass : baseClasses) {
@@ -2224,8 +2227,15 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(FunctionModel
if (functionItem->isAbstract())
*metaFunction += AbstractMetaAttributes::Abstract;
- if (!functionItem->isVirtual())
+ if (functionItem->isVirtual()) {
+ *metaFunction += AbstractMetaAttributes::VirtualCppMethod;
+ if (functionItem->isOverride())
+ *metaFunction += AbstractMetaAttributes::OverriddenCppMethod;
+ if (functionItem->isFinal())
+ *metaFunction += AbstractMetaAttributes::FinalCppMethod;
+ } else {
*metaFunction += AbstractMetaAttributes::Final;
+ }
if (functionItem->isInvokable())
*metaFunction += AbstractMetaAttributes::Invokable;