[PATCH] D13433: Use better mocks in modernize-make-unique, and fix matcher.
Angel Garcia via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 5 05:12:30 PDT 2015
angelgarcia created this revision.
angelgarcia added a reviewer: klimek.
angelgarcia added subscribers: cfe-commits, alexfh.
Add the second template argument to the unique_ptr mock, and update the matcher so that it only matches against cases where the second argument is the default.
http://reviews.llvm.org/D13433
Files:
clang-tidy/modernize/MakeUniqueCheck.cpp
test/clang-tidy/modernize-make-unique.cpp
Index: test/clang-tidy/modernize-make-unique.cpp
===================================================================
--- test/clang-tidy/modernize-make-unique.cpp
+++ test/clang-tidy/modernize-make-unique.cpp
@@ -2,7 +2,10 @@
namespace std {
-template <typename type>
+template <typename T>
+class default_delete {};
+
+template <typename type, typename Deleter = std::default_delete<type>>
class unique_ptr {
public:
unique_ptr(type *ptr);
Index: clang-tidy/modernize/MakeUniqueCheck.cpp
===================================================================
--- clang-tidy/modernize/MakeUniqueCheck.cpp
+++ clang-tidy/modernize/MakeUniqueCheck.cpp
@@ -29,10 +29,18 @@
cxxConstructExpr(
hasType(qualType(hasDeclaration(classTemplateSpecializationDecl(
matchesName("::std::unique_ptr"),
- templateArgumentCountIs(1),
+ templateArgumentCountIs(2),
+ hasTemplateArgument(0, templateArgument(refersToType(
+ qualType().bind(PointerType)))),
hasTemplateArgument(
- 0, templateArgument(
- refersToType(qualType().bind(PointerType)))))))),
+ 1, templateArgument(refersToType(qualType(
+ hasDeclaration(classTemplateSpecializationDecl(
+ matchesName("::std::default_delete"),
+ templateArgumentCountIs(1),
+ hasTemplateArgument(
+ 0, templateArgument(refersToType(
+ qualType(equalsBoundNode(
+ PointerType))))))))))))))),
argumentCountIs(1),
hasArgument(0, cxxNewExpr(hasType(pointsTo(qualType(
equalsBoundNode(PointerType)))))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13433.36503.patch
Type: text/x-patch
Size: 2025 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151005/a03d460c/attachment-0001.bin>
More information about the cfe-commits
mailing list