diff options
Diffstat (limited to 'overloaddata.cpp')
-rw-r--r-- | overloaddata.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/overloaddata.cpp b/overloaddata.cpp index 860e9fa9a..6190674d0 100644 --- a/overloaddata.cpp +++ b/overloaddata.cpp @@ -180,6 +180,26 @@ OverloadData* OverloadData::addOverloadData(const AbstractMetaFunction* func, return overloadData; } +QStringList OverloadData::returnTypes() const +{ + QSet<QString> retTypes; + foreach (const AbstractMetaFunction* func, m_overloads) { + if (!func->typeReplaced(0).isEmpty()) + retTypes << func->typeReplaced(0); + else if (func->type() && !func->argumentRemoved(0)) + retTypes << func->type()->cppSignature(); + else + retTypes << "void"; + } + return QStringList(retTypes.toList()); +} + +bool OverloadData::hasNonVoidReturnType() const +{ + QStringList retTypes = returnTypes(); + return !retTypes.contains("void") || retTypes.size() > 1; +} + const AbstractMetaFunction* OverloadData::referenceFunction() const { return m_overloads.first(); |