diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-01-19 13:55:35 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-01-19 14:36:12 -0300 |
commit | e540d86f173b151997313ba23e7fe382bd2623c4 (patch) | |
tree | 85f4b84135956a1aa31f13d15189da37bf028219 /overloaddata.cpp | |
parent | 2e7bab62943ada0320ce0cd7c8a6d6be6e64a6f3 (diff) |
Adds helpers to OverloadData to check for static and non-static methods.
OverloadDecisor received some new methods: hasStaticFunction,
hasInstanceFunction and hasStaticAndInstanceFunctions.
They are useful to check if an overload contains both static and
non-static signatures.
Diffstat (limited to 'overloaddata.cpp')
-rw-r--r-- | overloaddata.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/overloaddata.cpp b/overloaddata.cpp index 7b23730a6..80b884d19 100644 --- a/overloaddata.cpp +++ b/overloaddata.cpp @@ -254,6 +254,52 @@ bool OverloadData::hasAllowThread() const return false; } +bool OverloadData::hasStaticFunction(const AbstractMetaFunctionList& overloads) +{ + foreach (const AbstractMetaFunction* func, overloads) { + if (func->isStatic()) + return true; + } + return false; +} + +bool OverloadData::hasStaticFunction() const +{ + foreach (const AbstractMetaFunction* func, m_overloads) { + if (func->isStatic()) + return true; + } + return false; +} + +bool OverloadData::hasInstanceFunction(const AbstractMetaFunctionList& overloads) +{ + foreach (const AbstractMetaFunction* func, overloads) { + if (!func->isStatic()) + return true; + } + return false; +} + +bool OverloadData::hasInstanceFunction() const +{ + foreach (const AbstractMetaFunction* func, m_overloads) { + if (!func->isStatic()) + return true; + } + return false; +} + +bool OverloadData::hasStaticAndInstanceFunctions(const AbstractMetaFunctionList& overloads) +{ + return OverloadData::hasStaticFunction(overloads) && OverloadData::hasInstanceFunction(overloads); +} + +bool OverloadData::hasStaticAndInstanceFunctions() const +{ + return OverloadData::hasStaticFunction() && OverloadData::hasInstanceFunction(); +} + const AbstractMetaFunction* OverloadData::referenceFunction() const { return m_overloads.first(); |