applying your patch to trunk and build the whole C::B.
Than I do the following steps:
1, open the project
F:\cb\codeblocks_trunk\src\plugins\codecompletion\parser\parsertest.cbp
2, edit the file "test.h"
to below:
aaa & f();
aaa const & g();
3, run the project, here is the log:
...
--------------L-i-s-t--L-o-g--------------
000055. function aaa & f() [9,0]
000056. function aaa const & g() [11,0]
it seems the log is correctly.
Note that the List log comes from: parsertest.cpp
void ParserTest::PrintList()
{
TokenList& tokens = m_tokensTree->m_Tokens;
for (TokenList::iterator it = tokens.begin(); it != tokens.end(); it++)
{
wxString log;
log << (*it)->GetTokenKindString() << _T(" ") << (*it)->DisplayName() << _T("\t[") << (*it)->m_Line;
log << _T(",") << (*it)->m_ImplLine << _T("]");
ParserTrace(log);
}
}
then, DisplayName() will internally call the function:
wxString Token::DisplayName() const
{
wxString result;
if (m_TokenKind == tkClass)
return result << _T("class ") << m_Name << m_BaseArgs << _T(" {...}");
else if (m_TokenKind == tkNamespace)
return result << _T("namespace ") << m_Name << _T(" {...}");
else if (m_TokenKind == tkEnum)
return result << _T("enum ") << m_Name << _T(" {...}");
else if (m_TokenKind == tkTypedef)
{
result << _T("typedef");
if (!m_Type.IsEmpty())
result << _T(" ") << m_Type;
if (result.Find('*', true) != wxNOT_FOUND)
{
result.RemoveLast();
return result << m_Name << _T(")") << GetFormattedArgs();
}
if (!m_TemplateArgument.IsEmpty())
result << m_TemplateArgument;
return result << _T(" ") << m_Name;
}
else if (m_TokenKind == tkPreprocessor)
{
result << _T("#define ") << m_Name << GetFormattedArgs();
if (!m_Type.IsEmpty())
return result << _T(" ") << m_Type;
}
// else
if (!m_Type.IsEmpty())
result << m_Type << m_TemplateArgument << _T(" ");
if (m_TokenKind == tkEnumerator)
return result << GetNamespace() << m_Name << _T("=") << GetFormattedArgs();
return result << GetNamespace() << m_Name << GetStrippedArgs();
}
Then, I check the
m_Type here, it is correct too.
not sure why your problem happens....