aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/abstractmetabuilder.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/abstractmetabuilder.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/abstractmetabuilder.cpp')
-rw-r--r--sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
index 5cb6ac342..79d69abf3 100644
--- a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
+++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
@@ -374,7 +374,7 @@ void AbstractMetaBuilderPrivate::traverseStreamOperator(FunctionModelItem item)
streamFunction->setArguments(arguments);
- *streamFunction += AbstractMetaAttributes::Final;
+ *streamFunction += AbstractMetaAttributes::FinalInTargetLang;
*streamFunction += AbstractMetaAttributes::Public;
streamFunction->setOriginalAttributes(streamFunction->attributes());
@@ -1486,11 +1486,6 @@ void AbstractMetaBuilderPrivate::setupFunctionDefaults(AbstractMetaFunction *met
if (metaFunction->name() == QLatin1String("operator_equal"))
metaClass->setHasEqualsOperator(true);
-
- if (!metaFunction->isFinalInTargetLang()
- && metaFunction->isRemovedFrom(metaClass, TypeSystem::TargetLangCode)) {
- *metaFunction += AbstractMetaAttributes::FinalInCpp;
- }
}
void AbstractMetaBuilderPrivate::fixReturnTypeOfConversionOperator(AbstractMetaFunction *metaFunction)
@@ -1707,16 +1702,18 @@ void AbstractMetaBuilderPrivate::traverseFunctions(ScopeModelItem scopeItem,
metaClass->setHasPrivateConstructor(true);
if ((isInvalidDestructor || isInvalidConstructor)
&& !metaClass->hasNonPrivateConstructor()) {
- *metaClass += AbstractMetaAttributes::Final;
+ *metaClass += AbstractMetaAttributes::FinalInTargetLang;
} else if (metaFunction->isConstructor() && !metaFunction->isPrivate()) {
- *metaClass -= AbstractMetaAttributes::Final;
+ *metaClass -= AbstractMetaAttributes::FinalInTargetLang;
metaClass->setHasNonPrivateConstructor(true);
}
// Classes with virtual destructors should always have a shell class
// (since we aren't registering the destructors, we need this extra check)
- if (metaFunction->isDestructor() && !metaFunction->isFinal())
+ if (metaFunction->isDestructor() && metaFunction->isVirtual()
+ && metaFunction->visibility() != AbstractMetaAttributes::Private) {
metaClass->setForceShellClass(true);
+ }
if (!metaFunction->isDestructor()
&& !(metaFunction->isPrivate() && metaFunction->functionType() == AbstractMetaFunction::ConstructorFunction)) {
@@ -1929,7 +1926,7 @@ AbstractMetaFunction* AbstractMetaBuilderPrivate::traverseFunction(const AddedFu
metaFunction->setVisibility(visibility);
metaFunction->setUserAdded(true);
AbstractMetaAttributes::Attribute isStatic = addedFunc.isStatic() ? AbstractMetaFunction::Static : AbstractMetaFunction::None;
- metaFunction->setAttributes(metaFunction->attributes() | AbstractMetaAttributes::Final | isStatic);
+ metaFunction->setAttributes(metaFunction->attributes() | AbstractMetaAttributes::FinalInTargetLang | isStatic);
metaFunction->setType(translateType(addedFunc.version(), addedFunc.returnType()));
@@ -2202,7 +2199,7 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(FunctionModel
if (functionItem->isFinal())
*metaFunction += AbstractMetaAttributes::FinalCppMethod;
} else {
- *metaFunction += AbstractMetaAttributes::Final;
+ *metaFunction += AbstractMetaAttributes::FinalInTargetLang;
}
if (functionItem->isInvokable())
@@ -2210,7 +2207,7 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(FunctionModel
if (functionItem->isStatic()) {
*metaFunction += AbstractMetaAttributes::Static;
- *metaFunction += AbstractMetaAttributes::Final;
+ *metaFunction += AbstractMetaAttributes::FinalInTargetLang;
}
// Access rights