From a3ed9116e5d92c0a3ecece7ad7f0a91860a3ea37 Mon Sep 17 00:00:00 2001 From: Maksim Derbasov Date: Sun, 5 Jan 2020 11:32:39 +0300 Subject: [PATCH] Clarify error msg for hidingInheritedPublic (#2474) --- lib/checkclass.cpp | 2 +- lib/checkclass.h | 3 ++- lib/checkunusedvar.h | 2 +- test/testclass.cpp | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/checkclass.cpp b/lib/checkclass.cpp index 5f36595b8..1e50c43df 100644 --- a/lib/checkclass.cpp +++ b/lib/checkclass.cpp @@ -2650,7 +2650,7 @@ void CheckClass::checkAccessModifierVirtualFunctionsError(const Token *tok, cons { reportError(tok, Severity::style, "hidingInheritedPublic", "$symbol:" + func + "\n" - "The function '$symbol' has more narrow access modifier in a derived class. It could violate a LSP principle.", + "The virtual function '$symbol' is a public in a base class and became not-public in derived. It's violate a substitutability a principle in OOP.", CWE(0U) /* Unknown CWE! */, false); } diff --git a/lib/checkclass.h b/lib/checkclass.h index 3904bf245..59eaf6ebc 100644 --- a/lib/checkclass.h +++ b/lib/checkclass.h @@ -253,7 +253,8 @@ private: "- Duplicated inherited data members\n" // disabled for now "- If 'copy constructor' defined, 'operator=' also should be defined and vice versa\n" "- Check that arbitrary usage of public interface does not result in division by zero\n" - "- Check that the 'override' keyword is used when overriding virtual functions\n"; + "- Check that the 'override' keyword is used when overriding virtual functions\n" + "- Check that virtual public function not became private in derived class\n"; } // operatorEqRetRefThis helper functions diff --git a/lib/checkunusedvar.h b/lib/checkunusedvar.h index db330932b..0bff112d7 100644 --- a/lib/checkunusedvar.h +++ b/lib/checkunusedvar.h @@ -100,7 +100,7 @@ private: // style "- unused variable\n" "- allocated but unused variable\n" - "- unred variable\n" + "- unread variable\n" "- unassigned variable\n" "- unused struct member\n"; } diff --git a/test/testclass.cpp b/test/testclass.cpp index 87c490cd6..b5178017e 100644 --- a/test/testclass.cpp +++ b/test/testclass.cpp @@ -7167,7 +7167,7 @@ private: void accessModifierVirtualFunctions() { checkAccessModifierVirtualFunctions("struct Base { virtual void f(); };\n" "struct Derived : Base { private: virtual void f(); };"); - ASSERT_EQUALS("[test.cpp:2]: (style) The function 'f' has more narrow access modifier in a derived class. It could violate a LSP principle.\n", errout.str()); + ASSERT_EQUALS("[test.cpp:2]: (style) The virtual function 'f' is a public in a base class and became not-public in derived. It's violate a substitutability a principle in OOP.\n", errout.str()); checkAccessModifierVirtualFunctions("struct Base { virtual void f(); };\n" "struct Derived : Base { virtual void f(); };");