Fixed #3271 (Regression: something related to symbol database / varid)
This commit is contained in:
parent
4295439e53
commit
a7f27a83a7
|
@ -3389,6 +3389,9 @@ void Tokenizer::setVarId()
|
||||||
if (tok && tok->str() == "friend")
|
if (tok && tok->str() == "friend")
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (Token::Match(tok, "class|struct %type% ;"))
|
||||||
|
continue;
|
||||||
|
|
||||||
// skip global namespace prefix
|
// skip global namespace prefix
|
||||||
if (Token::simpleMatch(tok, "::"))
|
if (Token::simpleMatch(tok, "::"))
|
||||||
tok = tok->next();
|
tok = tok->next();
|
||||||
|
|
|
@ -195,6 +195,7 @@ private:
|
||||||
TEST_CASE(varid_in_class1);
|
TEST_CASE(varid_in_class1);
|
||||||
TEST_CASE(varid_in_class2);
|
TEST_CASE(varid_in_class2);
|
||||||
TEST_CASE(varid_in_class3); // #3092 - shadow variable in member function
|
TEST_CASE(varid_in_class3); // #3092 - shadow variable in member function
|
||||||
|
TEST_CASE(varid_in_class4); // #3271 - public: class C;
|
||||||
TEST_CASE(varid_operator);
|
TEST_CASE(varid_operator);
|
||||||
TEST_CASE(varid_throw);
|
TEST_CASE(varid_throw);
|
||||||
TEST_CASE(varid_unknown_macro); // #2638 - unknown macro is not type
|
TEST_CASE(varid_unknown_macro); // #2638 - unknown macro is not type
|
||||||
|
@ -3224,6 +3225,16 @@ private:
|
||||||
"6: } ;\n", tokenizeDebugListing(code));
|
"6: } ;\n", tokenizeDebugListing(code));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void varid_in_class4() {
|
||||||
|
const std::string code = "class Foo {\n"
|
||||||
|
"public: class C;\n"
|
||||||
|
"};";
|
||||||
|
ASSERT_EQUALS("\n\n##file 0\n"
|
||||||
|
"1: class Foo {\n"
|
||||||
|
"2: public: class C ;\n"
|
||||||
|
"3: } ;\n",
|
||||||
|
tokenizeDebugListing(code));
|
||||||
|
}
|
||||||
|
|
||||||
void varid_operator() {
|
void varid_operator() {
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue