diff --git a/uppsrc/ide/clang/Visitor.cpp b/uppsrc/ide/clang/Visitor.cpp index 88f5d6a47..928437741 100644 --- a/uppsrc/ide/clang/Visitor.cpp +++ b/uppsrc/ide/clang/Visitor.cpp @@ -131,12 +131,11 @@ String ClangCursorInfo::Id() p++; m = CleanupId(p); { // remove any scope - int p = m.Find('('); - for(;;) { - int q = m.Find("::"); - if(q < 0 || q >= p) - break; - m = m.Mid(q + 2); + int q = m.Find('('); + if(q >= 0) { + q = m.ReverseFind("::", q); + if(q >= 0) + m = m.Mid(q + 2); } } while(findarg(m[q], ':', '*', '&', '(', ')', ' ') >= 0)