aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-12-11 08:58:53 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-12-21 17:18:28 +0000
commit44184b76ea3c8edd827d380e156131648444baec (patch)
tree2a0fd10cd79dffa7e94db29b90b64392748db922 /sources/shiboken2/ApiExtractor/abstractmetalang.cpp
parent7a8c4226bfccfdc27e32213671cd75ea27945abf (diff)
Remove attributes Final and FinalInCpp
Apparently, the meaning of FinalInCpp for functions was "virtual and not private". The previous code cleanup removed most uses of them. For the remaining cases, checking for virtual is sufficient. Change-Id: I6f794e36b99920af36fd0eba895be673dc35d9dd Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'sources/shiboken2/ApiExtractor/abstractmetalang.cpp')
-rw-r--r--sources/shiboken2/ApiExtractor/abstractmetalang.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/sources/shiboken2/ApiExtractor/abstractmetalang.cpp b/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
index ceb45524f..19e6a0f26 100644
--- a/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
+++ b/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
@@ -1214,7 +1214,7 @@ AbstractMetaFunctionList AbstractMetaClass::functionsInTargetLang() const
// Only public functions in final classes
// default_flags |= isFinal() ? WasPublic : 0;
FunctionQueryOptions public_flags;
- if (isFinal())
+ if (isFinalInTargetLang())
public_flags |= WasPublic;
// Constructors
@@ -1368,7 +1368,7 @@ void AbstractMetaClass::addFunction(AbstractMetaFunction *function)
Q_ASSERT(false); //memory leak
m_hasVirtualSlots |= function->isVirtualSlot();
- m_hasVirtuals |= !function->isFinal() || function->isVirtualSlot() || hasVirtualDestructor();
+ m_hasVirtuals |= function->isVirtual() || function->isVirtualSlot() || hasVirtualDestructor();
m_isPolymorphic |= m_hasVirtuals;
m_hasNonpublic |= !function->isPublic();
}
@@ -1572,7 +1572,7 @@ static AbstractMetaFunction *createXetter(const AbstractMetaField *g, const QStr
f->setImplementingClass(g->enclosingClass());
f->setDeclaringClass(g->enclosingClass());
- AbstractMetaAttributes::Attributes attr = AbstractMetaAttributes::Final | type;
+ AbstractMetaAttributes::Attributes attr = AbstractMetaAttributes::FinalInTargetLang | type;
if (g->isStatic())
attr |= AbstractMetaAttributes::Static;
if (g->isPublic())
@@ -1752,7 +1752,7 @@ void AbstractMetaClass::addDefaultConstructor()
f->setArguments(AbstractMetaArgumentList());
f->setDeclaringClass(this);
- f->setAttributes(AbstractMetaAttributes::Public | AbstractMetaAttributes::Final);
+ f->setAttributes(AbstractMetaAttributes::Public | AbstractMetaAttributes::FinalInTargetLang);
f->setImplementingClass(this);
f->setOriginalAttributes(f->attributes());
@@ -1780,7 +1780,7 @@ void AbstractMetaClass::addDefaultCopyConstructor(bool isPrivate)
arg->setName(name());
f->addArgument(arg);
- AbstractMetaAttributes::Attributes attr = AbstractMetaAttributes::Final;
+ AbstractMetaAttributes::Attributes attr = AbstractMetaAttributes::FinalInTargetLang;
if (isPrivate)
attr |= AbstractMetaAttributes::Private;
else
@@ -1809,7 +1809,7 @@ AbstractMetaFunctionList AbstractMetaClass::queryFunctions(FunctionQueryOptions
if ((query & NotRemovedFromTargetLang) && f->isRemovedFrom(f->implementingClass(), TypeSystem::TargetLangCode))
continue;
- if ((query & NotRemovedFromTargetLang) && !f->isFinal() && f->isRemovedFrom(f->declaringClass(), TypeSystem::TargetLangCode))
+ if ((query & NotRemovedFromTargetLang) && f->isVirtual() && f->isRemovedFrom(f->declaringClass(), TypeSystem::TargetLangCode))
continue;
if ((query & Visible) && f->isPrivate())
@@ -1833,7 +1833,7 @@ AbstractMetaFunctionList AbstractMetaClass::queryFunctions(FunctionQueryOptions
if ((query & FinalInTargetLangFunctions) && !f->isFinalInTargetLang())
continue;
- if ((query & VirtualInCppFunctions) && f->isFinalInCpp())
+ if ((query & VirtualInCppFunctions) && !f->isVirtual())
continue;
if ((query & Signals) && (!f->isSignal()))
@@ -2091,9 +2091,6 @@ void AbstractMetaClass::fixFunctions()
// Same function, propegate virtual...
if (!(cmp & AbstractMetaFunction::EqualAttributes)) {
if (!f->isEmptyFunction()) {
- if (!sf->isFinalInCpp() && f->isFinalInCpp()) {
- *f -= AbstractMetaAttributes::FinalInCpp;
- }
if (!sf->isFinalInTargetLang() && f->isFinalInTargetLang()) {
*f -= AbstractMetaAttributes::FinalInTargetLang;
}
@@ -2128,7 +2125,6 @@ void AbstractMetaClass::fixFunctions()
if (f->isPrivate()) {
f->setFunctionType(AbstractMetaFunction::EmptyFunction);
*f += AbstractMetaAttributes::FinalInTargetLang;
- *f += AbstractMetaAttributes::FinalInCpp;
}
}