forked from OSchip/llvm-project
Use better mocks in modernize-make-unique, and fix matcher.
Summary: 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. Reviewers: klimek Subscribers: alexfh, cfe-commits Differential Revision: http://reviews.llvm.org/D13433 llvm-svn: 249305
This commit is contained in:
parent
057f0a68cc
commit
b9f3059509
|
@ -29,10 +29,18 @@ void MakeUniqueCheck::registerMatchers(MatchFinder *Finder) {
|
|||
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)))))
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue