aboutsummaryrefslogtreecommitdiffstats
path: root/abstractmetalang.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'abstractmetalang.cpp')
-rw-r--r--abstractmetalang.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/abstractmetalang.cpp b/abstractmetalang.cpp
index db6e1b3e6..101b97cfe 100644
--- a/abstractmetalang.cpp
+++ b/abstractmetalang.cpp
@@ -1259,10 +1259,10 @@ void AbstractMetaClass::setFunctions(const AbstractMetaFunctionList &functions)
foreach (AbstractMetaFunction *f, m_functions) {
f->setOwnerClass(this);
- m_hasVirtualSlots |= f->isVirtualSlot();
- m_hasVirtuals |= !f->isFinal() || f->isVirtualSlot();
- m_isPolymorphic |= m_hasVirtuals;
- m_hasNonpublic |= !f->isPublic();
+ m_hasVirtualSlots = m_hasVirtualSlots || f->isVirtualSlot();
+ m_hasVirtuals = m_hasVirtuals || !f->isFinal() || f->isVirtualSlot();
+ m_isPolymorphic = m_isPolymorphic || m_hasVirtuals || hasVirtualDestructor();
+ m_hasNonpublic = m_hasNonpublic || !f->isPublic();
// If we have non-virtual overloads of a virtual function, we have to implement
// all the overloads in the shell class to override the hiding rule