diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-12-11 08:58:53 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-12-21 17:18:28 +0000 |
commit | 44184b76ea3c8edd827d380e156131648444baec (patch) | |
tree | 2a0fd10cd79dffa7e94db29b90b64392748db922 /sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp | |
parent | 7a8c4226bfccfdc27e32213671cd75ea27945abf (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.cpp | 21 |
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 |