diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-11-19 10:13:25 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-11-19 10:13:25 -0300 |
commit | 7909835691c3589364169c3c8b8e06263490cb07 (patch) | |
tree | beb45c120090486a70e3e9f76ee1eb521970b864 | |
parent | 403d2ff8d2c073d673a983b87c9813705ca39496 (diff) |
Fixed OverloadData::isFinalOccurrence method to consider removed arguments.
-rw-r--r-- | overloaddata.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/overloaddata.cpp b/overloaddata.cpp index 70059245e..860e9fa9a 100644 --- a/overloaddata.cpp +++ b/overloaddata.cpp @@ -182,7 +182,7 @@ OverloadData* OverloadData::addOverloadData(const AbstractMetaFunction* func, const AbstractMetaFunction* OverloadData::referenceFunction() const { - return m_overloads.at(0); + return m_overloads.first(); } const AbstractMetaArgument* OverloadData::argument(const AbstractMetaFunction* func) const @@ -261,7 +261,12 @@ bool OverloadData::isFinalOccurrence(const AbstractMetaFunction* func) const bool OverloadData::hasDefaultValue() const { foreach (const AbstractMetaFunction* func, m_overloads) { - if (!func->arguments()[m_argPos]->defaultValueExpression().isEmpty()) + int removedArgs = 0; + for (int i = 0; i <= m_argPos + removedArgs; i++) { + if (func->argumentRemoved(i + 1)) + removedArgs++; + } + if (!func->arguments()[m_argPos + removedArgs]->defaultValueExpression().isEmpty()) return true; } return false; |