Fixed #7343 (SymbolDatabase: handling of override)
This commit is contained in:
parent
8ce813f241
commit
f64930b7f5
|
@ -1334,6 +1334,7 @@ bool SymbolDatabase::isFunction(const Token *tok, const Scope* outerScope, const
|
||||||
(tok2->isUpperCaseName() && Token::Match(tok2, "%name% (") && tok2->next()->link()->strAt(1) == "{") ||
|
(tok2->isUpperCaseName() && Token::Match(tok2, "%name% (") && tok2->next()->link()->strAt(1) == "{") ||
|
||||||
Token::Match(tok2, ": ::| %name% (|::|<|{") ||
|
Token::Match(tok2, ": ::| %name% (|::|<|{") ||
|
||||||
Token::Match(tok2, "const| &|&&| ;|{") ||
|
Token::Match(tok2, "const| &|&&| ;|{") ||
|
||||||
|
Token::Match(tok2, "const| override ;|{") ||
|
||||||
Token::Match(tok2, "= delete|default ;") ||
|
Token::Match(tok2, "= delete|default ;") ||
|
||||||
Token::Match(tok2, "const| noexcept {|:|;|=") ||
|
Token::Match(tok2, "const| noexcept {|:|;|=") ||
|
||||||
(Token::Match(tok2, "const| noexcept|throw (") &&
|
(Token::Match(tok2, "const| noexcept|throw (") &&
|
||||||
|
|
|
@ -236,6 +236,7 @@ private:
|
||||||
TEST_CASE(symboldatabase51); // #6538
|
TEST_CASE(symboldatabase51); // #6538
|
||||||
TEST_CASE(symboldatabase52); // #6581
|
TEST_CASE(symboldatabase52); // #6581
|
||||||
TEST_CASE(symboldatabase53); // #7124 (library podtype)
|
TEST_CASE(symboldatabase53); // #7124 (library podtype)
|
||||||
|
TEST_CASE(symboldatabase54); // #7257
|
||||||
|
|
||||||
TEST_CASE(isImplicitlyVirtual);
|
TEST_CASE(isImplicitlyVirtual);
|
||||||
TEST_CASE(isPure);
|
TEST_CASE(isPure);
|
||||||
|
@ -2207,6 +2208,20 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void symboldatabase54() { // #7343
|
||||||
|
GET_SYMBOL_DB("class A {\n"
|
||||||
|
" void getReg() const override {\n"
|
||||||
|
" assert(Kind == k_ShiftExtend);\n"
|
||||||
|
" }\n"
|
||||||
|
"};");
|
||||||
|
|
||||||
|
ASSERT(db != nullptr);
|
||||||
|
if (db) {
|
||||||
|
ASSERT_EQUALS(1U, db->functionScopes.size());
|
||||||
|
ASSERT_EQUALS("getReg", db->functionScopes.front()->className);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void isImplicitlyVirtual() {
|
void isImplicitlyVirtual() {
|
||||||
{
|
{
|
||||||
GET_SYMBOL_DB("class Base {\n"
|
GET_SYMBOL_DB("class Base {\n"
|
||||||
|
|
Loading…
Reference in New Issue