felix642 created this revision. Herald added subscribers: PiotrZSL, carlosgalvezp, xazax.hun. Herald added a reviewer: njames93. Herald added a project: All. felix642 requested review of this revision. Herald added a project: clang-tools-extra. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D158346 Files: clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp Index: clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp +++ clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp @@ -22,6 +22,10 @@ }; } +namespace string_literals{ +string operator""s(const char *, size_t); +} + } template <typename T> @@ -770,3 +774,17 @@ bool testIgnoredDummyType(const IgnoredDummyType& value) { return value == IgnoredDummyType(); } + +bool testStringLiterals(const std::string& s) +{ + using namespace std::string_literals; + return s == ""s; + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: the 'empty' method should be used + // CHECK-FIXES: {{^ }}return s.empty() +} + +bool testNotEmptyStringLiterals(const std::string& s) +{ + using namespace std::string_literals; + return s == "foo"s; +} \ No newline at end of file Index: clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp +++ clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp @@ -166,9 +166,11 @@ this); // Comparison to empty string or empty constructor. - const auto WrongComparend = anyOf( - stringLiteral(hasSize(0)), cxxConstructExpr(isDefaultConstruction()), - cxxUnresolvedConstructExpr(argumentCountIs(0))); + const auto WrongComparend = + anyOf(stringLiteral(hasSize(0)), + userDefinedLiteral(hasDescendant(stringLiteral(hasSize(0)))), + cxxConstructExpr(isDefaultConstruction()), + cxxUnresolvedConstructExpr(argumentCountIs(0))); // Match the object being compared. const auto STLArg = anyOf(unaryOperator(
Index: clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp +++ clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp @@ -22,6 +22,10 @@ }; } +namespace string_literals{ +string operator""s(const char *, size_t); +} + } template <typename T> @@ -770,3 +774,17 @@ bool testIgnoredDummyType(const IgnoredDummyType& value) { return value == IgnoredDummyType(); } + +bool testStringLiterals(const std::string& s) +{ + using namespace std::string_literals; + return s == ""s; + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: the 'empty' method should be used + // CHECK-FIXES: {{^ }}return s.empty() +} + +bool testNotEmptyStringLiterals(const std::string& s) +{ + using namespace std::string_literals; + return s == "foo"s; +} \ No newline at end of file Index: clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp +++ clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp @@ -166,9 +166,11 @@ this); // Comparison to empty string or empty constructor. - const auto WrongComparend = anyOf( - stringLiteral(hasSize(0)), cxxConstructExpr(isDefaultConstruction()), - cxxUnresolvedConstructExpr(argumentCountIs(0))); + const auto WrongComparend = + anyOf(stringLiteral(hasSize(0)), + userDefinedLiteral(hasDescendant(stringLiteral(hasSize(0)))), + cxxConstructExpr(isDefaultConstruction()), + cxxUnresolvedConstructExpr(argumentCountIs(0))); // Match the object being compared. const auto STLArg = anyOf(unaryOperator(
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits