summaryrefslogtreecommitdiffstats
path: root/src/code.l
diff options
context:
space:
mode:
Diffstat (limited to 'src/code.l')
-rw-r--r--src/code.l16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/code.l b/src/code.l
index 85d23b5..8c22012 100644
--- a/src/code.l
+++ b/src/code.l
@@ -687,7 +687,7 @@ static MemberDef *setCallContextForVar(const QCString &name)
QCString scope = name.left(scopeEnd);
QCString locName = name.right(name.length()-scopeEnd-2);
//printf("explicit scope: name=%s scope=%s\n",locName.data(),scope.data());
- ClassDef *mcd = getClass(scope); // TODO: check namespace as well
+ ClassDef *mcd = getClass(scope);
if (mcd && !locName.isEmpty())
{
MemberDef *md=mcd->getMemberByName(locName);
@@ -698,6 +698,20 @@ static MemberDef *setCallContextForVar(const QCString &name)
return md;
}
}
+ else // check namespace as well
+ {
+ NamespaceDef *mnd = getResolvedNamespace(scope);
+ if (mnd && !locName.isEmpty())
+ {
+ MemberDef *md=mnd->getMemberByName(locName);
+ if (md)
+ {
+ //printf("name=%s scope=%s\n",locName.data(),scope.data());
+ g_theCallContext.setClass(stripClassName(md->typeString()));
+ return md;
+ }
+ }
+ }
}
MemberName *mn;