diff --git a/language/codegen/codedescription.h b/language/codegen/codedescription.h --- a/language/codegen/codedescription.h +++ b/language/codegen/codedescription.h @@ -154,6 +154,18 @@ **/ bool isVirtual : 1; /** + * Specifies whether this function is abstract and needs to be overridden by subclasses + **/ + bool isAbstract : 1; + /** + * Specifies whether this function overrides a virtual method of a base class + **/ + bool isOverriding : 1; + /** + * Specifies whether this function is final and cannot be overridden by subclasses + **/ + bool isFinal : 1; + /** * Specifies whether this function is static and can be called without a class instance **/ bool isStatic : 1; diff --git a/language/codegen/codedescription.cpp b/language/codegen/codedescription.cpp --- a/language/codegen/codedescription.cpp +++ b/language/codegen/codedescription.cpp @@ -127,6 +127,9 @@ isConstructor = method->isConstructor(); isDestructor = method->isDestructor(); isVirtual = method->isVirtual(); + isAbstract = method->isAbstract(); + isFinal = method->isFinal(); + isOverriding = (DUChainUtils::getOverridden(method.data()) != nullptr); isStatic = method->isStatic(); isSlot = method->isSlot(); isSignal = method->isSignal(); diff --git a/language/codegen/codedescriptionmetatypes.h b/language/codegen/codedescriptionmetatypes.h --- a/language/codegen/codedescriptionmetatypes.h +++ b/language/codegen/codedescriptionmetatypes.h @@ -45,6 +45,9 @@ GRANTLEE_LOOKUP_PROPERTY(isConstructor) GRANTLEE_LOOKUP_PROPERTY(isDestructor) GRANTLEE_LOOKUP_PROPERTY(isVirtual) + GRANTLEE_LOOKUP_PROPERTY(isAbstract) + GRANTLEE_LOOKUP_PROPERTY(isOverriding) + GRANTLEE_LOOKUP_PROPERTY(isFinal) GRANTLEE_LOOKUP_PROPERTY(isStatic) GRANTLEE_LOOKUP_PROPERTY(isConst) GRANTLEE_LOOKUP_PROPERTY(isSignal)