summaryrefslogtreecommitdiffstats
path: root/src/util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.cpp')
-rwxr-xr-xsrc/util.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/util.cpp b/src/util.cpp
index 3593c9d..6f7703b 100755
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -2268,6 +2268,8 @@ QCString argListToString(ArgumentList *al,bool useCanonicalType,bool showDefVals
result+=")";
if (al->constSpecifier) result+=" const";
if (al->volatileSpecifier) result+=" volatile";
+ if (al->refQualifier==RefQualifierLValue) result+=" &";
+ else if (al->refQualifier==RefQualifierRValue) result+=" &&";
if (!al->trailingReturnType.isEmpty()) result+=" -> "+al->trailingReturnType;
if (al->pureSpecifier) result+=" =0";
return removeRedundantWhiteSpace(result);
@@ -3362,6 +3364,12 @@ bool matchArguments(ArgumentList *srcAl,ArgumentList *dstAl,
}
}
+ if (srcAl->refQualifier != dstAl->refQualifier)
+ {
+ NOMATCH
+ return FALSE; // one member is has a different ref-qualifier than the other
+ }
+
// so far the argument list could match, so we need to compare the types of
// all arguments.
ArgumentListIterator srcAli(*srcAl),dstAli(*dstAl);
@@ -3795,6 +3803,12 @@ bool matchArguments2(Definition *srcScope,FileDef *srcFileScope,ArgumentList *sr
}
}
+ if (srcAl->refQualifier != dstAl->refQualifier)
+ {
+ NOMATCH
+ return FALSE; // one member is has a different ref-qualifier than the other
+ }
+
// so far the argument list could match, so we need to compare the types of
// all arguments.
ArgumentListIterator srcAli(*srcAl),dstAli(*dstAl);