summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-11-26 16:51:36 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-11-26 16:51:36 -0300
commitd31812c2b3ecb93d1326c00a11fbb4e4bca6f6ed (patch)
tree8e37f3a7aa1b68aa152b00d981d1e1bebd94d7c0
parent736854dc7e64cb2bdcb8d765aace6ee51d8c1150 (diff)
downloadshiboken-d31812c2b3ecb93d1326c00a11fbb4e4bca6f6ed.tar.gz
shiboken-d31812c2b3ecb93d1326c00a11fbb4e4bca6f6ed.tar.xz
shiboken-d31812c2b3ecb93d1326c00a11fbb4e4bca6f6ed.zip
Added convenience method OverloadData::isSingleArgument(overloads).
-rw-r--r--overloaddata.cpp12
-rw-r--r--overloaddata.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/overloaddata.cpp b/overloaddata.cpp
index 1be83241..3fd86baa 100644
--- a/overloaddata.cpp
+++ b/overloaddata.cpp
@@ -383,6 +383,18 @@ QPair<int, int> OverloadData::getMinMaxArguments(const AbstractMetaFunctionList
return QPair<int, int>(minArgs, maxArgs);
}
+bool OverloadData::isSingleArgument(const AbstractMetaFunctionList overloads)
+{
+ bool singleArgument = true;
+ foreach (const AbstractMetaFunction* func, overloads) {
+ if (func->arguments().size() - numberOfRemovedArguments(func) > 1) {
+ singleArgument = false;
+ break;
+ }
+ }
+ return singleArgument;
+}
+
void OverloadData::dumpGraph(QString filename) const
{
QFile file(filename);
diff --git a/overloaddata.h b/overloaddata.h
index a0970a2c..decbcfaf 100644
--- a/overloaddata.h
+++ b/overloaddata.h
@@ -75,6 +75,8 @@ public:
static int numberOfRemovedArguments(const AbstractMetaFunction* func, int finalArgPos = -1);
static QPair<int, int> getMinMaxArguments(const AbstractMetaFunctionList overloads);
+ /// Returns true if all overloads have no more than one argument.
+ static bool isSingleArgument(const AbstractMetaFunctionList overloads);
void dumpGraph(QString filename) const;
QString dumpGraph() const;