aboutsummaryrefslogtreecommitdiffstats
path: root/overloaddata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'overloaddata.cpp')
-rw-r--r--overloaddata.cpp20
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();