Author: alexfh Date: Wed Dec 21 17:44:23 2016 New Revision: 290289 URL: http://llvm.org/viewvc/llvm-project?rev=290289&view=rev Log: [clang-tidy] Ignore `size() == 0` in the container implementation.
Modified: clang-tools-extra/trunk/clang-tidy/readability/ContainerSizeEmptyCheck.cpp clang-tools-extra/trunk/test/clang-tidy/readability-container-size-empty.cpp Modified: clang-tools-extra/trunk/clang-tidy/readability/ContainerSizeEmptyCheck.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/readability/ContainerSizeEmptyCheck.cpp?rev=290289&r1=290288&r2=290289&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/readability/ContainerSizeEmptyCheck.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/readability/ContainerSizeEmptyCheck.cpp Wed Dec 21 17:44:23 2016 @@ -58,7 +58,9 @@ void ContainerSizeEmptyCheck::registerMa hasType(pointsTo(ValidContainer)), hasType(references(ValidContainer)))) .bind("STLObject")), - callee(cxxMethodDecl(hasName("size"))), WrongUse) + callee(cxxMethodDecl(hasName("size"))), WrongUse, + unless(hasAncestor(cxxMethodDecl( + ofClass(equalsBoundNode("container")))))) .bind("SizeCallExpr"), this); } Modified: clang-tools-extra/trunk/test/clang-tidy/readability-container-size-empty.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/readability-container-size-empty.cpp?rev=290289&r1=290288&r2=290289&view=diff ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/readability-container-size-empty.cpp (original) +++ clang-tools-extra/trunk/test/clang-tidy/readability-container-size-empty.cpp Wed Dec 21 17:44:23 2016 @@ -61,6 +61,20 @@ public: class Derived : public Container { }; +class Container2 { +public: + int size() const; + bool empty() const { return size() == 0; } +}; + +class Container3 { +public: + int size() const; + bool empty() const; +}; + +bool Container3::empty() const { return this->size() == 0; } + int main() { std::set<int> intSet; std::string str; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits