From 450509b2263505764b9d09a50f2b1182227ea50b Mon Sep 17 00:00:00 2001 From: chrchr Date: Wed, 17 Jan 2024 13:13:36 +0100 Subject: [PATCH 1/3] Refactor: helper function functionTypeToString() --- lib/symboldatabase.cpp | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 413a7684fee..51467f460c5 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -3920,6 +3920,28 @@ void SymbolDatabase::printVariable(const Variable *var, const char *indent) cons std::cout << std::endl; } +static std::string functionTypeToString(Function::Type type) +{ + switch (type) { + case Function::eConstructor: + return "Constructor"; + case Function::eCopyConstructor: + return "CopyConstructor"; + case Function::eMoveConstructor: + return "MoveConstructor"; + case Function::eOperatorEqual: + return "OperatorEqual"; + case Function::eDestructor: + return "Destructor"; + case Function::eFunction: + return "Function"; + case Function::eLambda: + return "Lambda"; + default: + return "Unknown"; + } +} + void SymbolDatabase::printOut(const char *title) const { std::cout << std::setiosflags(std::ios::boolalpha); @@ -3937,14 +3959,7 @@ void SymbolDatabase::printOut(const char *title) const for (auto func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) { std::cout << " Function: " << &*func << std::endl; std::cout << " name: " << tokenToString(func->tokenDef, mTokenizer) << std::endl; - std::cout << " type: " << (func->type == Function::eConstructor? "Constructor" : - func->type == Function::eCopyConstructor ? "CopyConstructor" : - func->type == Function::eMoveConstructor ? "MoveConstructor" : - func->type == Function::eOperatorEqual ? "OperatorEqual" : - func->type == Function::eDestructor ? "Destructor" : - func->type == Function::eFunction ? "Function" : - func->type == Function::eLambda ? "Lambda" : - "Unknown") << std::endl; + std::cout << " type: " << functionTypeToString() << std::endl; std::cout << " access: " << accessControlToString(func->access) << std::endl; std::cout << " hasBody: " << func->hasBody() << std::endl; std::cout << " isInline: " << func->isInline() << std::endl; @@ -4218,14 +4233,7 @@ void SymbolDatabase::printXml(std::ostream &out) const outs += ErrorLogger::toxml(function->name()); outs += '\"'; outs += " type=\""; - outs += (function->type == Function::eConstructor? "Constructor" : - function->type == Function::eCopyConstructor ? "CopyConstructor" : - function->type == Function::eMoveConstructor ? "MoveConstructor" : - function->type == Function::eOperatorEqual ? "OperatorEqual" : - function->type == Function::eDestructor ? "Destructor" : - function->type == Function::eFunction ? "Function" : - function->type == Function::eLambda ? "Lambda" : - "Unknown"); + outs += functionTypeToString(function->type); outs += '\"'; if (function->nestedIn->definedType) { if (function->hasVirtualSpecifier()) From 6b735556b26f0727c0142a4f67b19fedcad99c7e Mon Sep 17 00:00:00 2001 From: chrchr Date: Wed, 17 Jan 2024 13:16:52 +0100 Subject: [PATCH 2/3] Fix --- lib/symboldatabase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 51467f460c5..3dc298f9a8f 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -3959,7 +3959,7 @@ void SymbolDatabase::printOut(const char *title) const for (auto func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) { std::cout << " Function: " << &*func << std::endl; std::cout << " name: " << tokenToString(func->tokenDef, mTokenizer) << std::endl; - std::cout << " type: " << functionTypeToString() << std::endl; + std::cout << " type: " << functionTypeToString(func->type) << std::endl; std::cout << " access: " << accessControlToString(func->access) << std::endl; std::cout << " hasBody: " << func->hasBody() << std::endl; std::cout << " isInline: " << func->isInline() << std::endl; From b1bb62296c69d804ec56d9d6729bc97491480517 Mon Sep 17 00:00:00 2001 From: chrchr Date: Wed, 17 Jan 2024 14:13:03 +0100 Subject: [PATCH 3/3] return const char*, format, move --- lib/symboldatabase.cpp | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 3dc298f9a8f..76a2e2bb784 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -3808,6 +3808,28 @@ static std::string accessControlToString(AccessControl access) return "Unknown"; } +static const char* functionTypeToString(Function::Type type) +{ + switch (type) { + case Function::eConstructor: + return "Constructor"; + case Function::eCopyConstructor: + return "CopyConstructor"; + case Function::eMoveConstructor: + return "MoveConstructor"; + case Function::eOperatorEqual: + return "OperatorEqual"; + case Function::eDestructor: + return "Destructor"; + case Function::eFunction: + return "Function"; + case Function::eLambda: + return "Lambda"; + default: + return "Unknown"; + } +} + static std::string tokenToString(const Token* tok, const Tokenizer& tokenizer) { std::ostringstream oss; @@ -3920,28 +3942,6 @@ void SymbolDatabase::printVariable(const Variable *var, const char *indent) cons std::cout << std::endl; } -static std::string functionTypeToString(Function::Type type) -{ - switch (type) { - case Function::eConstructor: - return "Constructor"; - case Function::eCopyConstructor: - return "CopyConstructor"; - case Function::eMoveConstructor: - return "MoveConstructor"; - case Function::eOperatorEqual: - return "OperatorEqual"; - case Function::eDestructor: - return "Destructor"; - case Function::eFunction: - return "Function"; - case Function::eLambda: - return "Lambda"; - default: - return "Unknown"; - } -} - void SymbolDatabase::printOut(const char *title) const { std::cout << std::setiosflags(std::ios::boolalpha);