Check Class: Removed the 'operator= should not return a const reference'
This commit is contained in:
parent
6ba5385878
commit
a7cf68b9ef
|
@ -1515,8 +1515,6 @@ void CheckClass::operatorEq()
|
||||||
{
|
{
|
||||||
if (it->token->strAt(-2) == "void")
|
if (it->token->strAt(-2) == "void")
|
||||||
operatorEqReturnError(it->token->tokAt(-2));
|
operatorEqReturnError(it->token->tokAt(-2));
|
||||||
else if (Token::Match(it->token->tokAt(-4), "const %type% &"))
|
|
||||||
operatorEqReturnConstError(it->token->tokAt(-4));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2261,11 +2259,6 @@ void CheckClass::operatorEqReturnError(const Token *tok)
|
||||||
reportError(tok, Severity::style, "operatorEq", "'operator=' should return something");
|
reportError(tok, Severity::style, "operatorEq", "'operator=' should return something");
|
||||||
}
|
}
|
||||||
|
|
||||||
void CheckClass::operatorEqReturnConstError(const Token *tok)
|
|
||||||
{
|
|
||||||
reportError(tok, Severity::style, "operatorEqReturnConst", "'operator=' should not return a const reference");
|
|
||||||
}
|
|
||||||
|
|
||||||
void CheckClass::virtualDestructorError(const Token *tok, const std::string &Base, const std::string &Derived)
|
void CheckClass::virtualDestructorError(const Token *tok, const std::string &Base, const std::string &Derived)
|
||||||
{
|
{
|
||||||
reportError(tok, Severity::error, "virtualDestructor", "Class " + Base + " which is inherited by class " + Derived + " does not have a virtual destructor");
|
reportError(tok, Severity::error, "virtualDestructor", "Class " + Base + " which is inherited by class " + Derived + " does not have a virtual destructor");
|
||||||
|
|
|
@ -320,7 +320,6 @@ private:
|
||||||
void memsetClassError(const Token *tok, const std::string &memfunc);
|
void memsetClassError(const Token *tok, const std::string &memfunc);
|
||||||
void memsetStructError(const Token *tok, const std::string &memfunc, const std::string &classname);
|
void memsetStructError(const Token *tok, const std::string &memfunc, const std::string &classname);
|
||||||
void operatorEqReturnError(const Token *tok);
|
void operatorEqReturnError(const Token *tok);
|
||||||
void operatorEqReturnConstError(const Token *tok);
|
|
||||||
void virtualDestructorError(const Token *tok, const std::string &Base, const std::string &Derived);
|
void virtualDestructorError(const Token *tok, const std::string &Base, const std::string &Derived);
|
||||||
void thisSubtractionError(const Token *tok);
|
void thisSubtractionError(const Token *tok);
|
||||||
void operatorEqRetRefThisError(const Token *tok);
|
void operatorEqRetRefThisError(const Token *tok);
|
||||||
|
@ -338,7 +337,6 @@ private:
|
||||||
memsetClassError(0, "memfunc");
|
memsetClassError(0, "memfunc");
|
||||||
memsetStructError(0, "memfunc", "classname");
|
memsetStructError(0, "memfunc", "classname");
|
||||||
operatorEqReturnError(0);
|
operatorEqReturnError(0);
|
||||||
operatorEqReturnConstError(0);
|
|
||||||
//virtualDestructorError(0, "Base", "Derived");
|
//virtualDestructorError(0, "Base", "Derived");
|
||||||
thisSubtractionError(0);
|
thisSubtractionError(0);
|
||||||
operatorEqRetRefThisError(0);
|
operatorEqRetRefThisError(0);
|
||||||
|
|
|
@ -88,7 +88,6 @@ private:
|
||||||
TEST_CASE(noConstructor5);
|
TEST_CASE(noConstructor5);
|
||||||
|
|
||||||
TEST_CASE(operatorEq1);
|
TEST_CASE(operatorEq1);
|
||||||
TEST_CASE(operatorEq2);
|
|
||||||
TEST_CASE(operatorEqRetRefThis1);
|
TEST_CASE(operatorEqRetRefThis1);
|
||||||
TEST_CASE(operatorEqRetRefThis2); // ticket #1323
|
TEST_CASE(operatorEqRetRefThis2); // ticket #1323
|
||||||
TEST_CASE(operatorEqRetRefThis3); // ticket #1405
|
TEST_CASE(operatorEqRetRefThis3); // ticket #1405
|
||||||
|
@ -232,16 +231,6 @@ private:
|
||||||
ASSERT_EQUALS("[test.cpp:3]: (style) 'operator=' should return something\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:3]: (style) 'operator=' should return something\n", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void operatorEq2()
|
|
||||||
{
|
|
||||||
checkOpertorEq("class A\n"
|
|
||||||
"{\n"
|
|
||||||
"public:\n"
|
|
||||||
" const A& operator=(const A&);\n"
|
|
||||||
"};\n");
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (style) 'operator=' should not return a const reference\n", errout.str());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check that operator Equal returns reference to this
|
// Check that operator Equal returns reference to this
|
||||||
void checkOpertorEqRetRefThis(const char code[])
|
void checkOpertorEqRetRefThis(const char code[])
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue