Tokenizer::setVarId: assert that strange code with same type names and variable names work. Ticket: #3990

This commit is contained in:
Alexander Mai 2013-05-01 18:50:35 +02:00 committed by Daniel Marjamäki
parent 44cb070e13
commit 957e0790c6
1 changed files with 17 additions and 0 deletions

View File

@ -290,6 +290,7 @@ private:
TEST_CASE(varidclass13);
TEST_CASE(varidclass14);
TEST_CASE(varidclass15); // initializer list
TEST_CASE(varid_classnameshaddowsvariablename) // #3990
TEST_CASE(file1);
TEST_CASE(file2);
@ -4717,6 +4718,22 @@ private:
ASSERT_EQUALS(expected, tokenizeDebugListing(code));
}
void varid_classnameshaddowsvariablename() {
const char code[] = "class Data;\n"
"void strange_declarated(const Data& Data);\n"
"void handleData(const Data& data) {\n"
" strange_declarated(data);\n"
"}\n";
const char expected[] = "\n\n##file 0\n"
"1: class Data ;\n"
"2: void strange_declarated ( const Data & Data@1 ) ;\n"
"3: void handleData ( const Data & data@2 ) {\n"
"4: strange_declarated ( data@2 ) ;\n"
"5: }\n";
ASSERT_EQUALS(expected, tokenizeDebugListing(code));
}
void file1() {
const char code[] = "a1\n"
"#file \"b\"\n"