Hi alexfh,

http://reviews.llvm.org/D8071

Files:
  clang-tidy/misc/UniqueptrResetRelease.cpp
  test/clang-tidy/misc-uniqueptr-reset-release.cpp

Index: clang-tidy/misc/UniqueptrResetRelease.cpp
===================================================================
--- clang-tidy/misc/UniqueptrResetRelease.cpp
+++ clang-tidy/misc/UniqueptrResetRelease.cpp
@@ -52,13 +52,18 @@
     LeftText = "*" + LeftText;
   if (ReleaseMember->isArrow())
     RightText = "*" + RightText;
+  std::string DiagText;
   // Even if x was rvalue, *x is not rvalue anymore.
-  if (!Right->isRValue() || ReleaseMember->isArrow())
+  if (!Right->isRValue() || ReleaseMember->isArrow()) {
     RightText = "std::move(" + RightText + ")";
+    DiagText = "prefer ptr1 = std::move(ptr2) over ptr1.reset(ptr2.release())";
+  } else {
+    DiagText =
+        "prefer ptr = ReturnUnique() over ptr.reset(ReturnUnique().release())";
+  }
   std::string NewText = LeftText + " = " + RightText;
 
-  diag(ResetMember->getExprLoc(),
-       "prefer ptr1 = std::move(ptr2) over ptr1.reset(ptr2.release())")
+  diag(ResetMember->getExprLoc(), DiagText)
       << FixItHint::CreateReplacement(
           CharSourceRange::getTokenRange(ResetCall->getSourceRange()), 
NewText);
 }
Index: test/clang-tidy/misc-uniqueptr-reset-release.cpp
===================================================================
--- test/clang-tidy/misc-uniqueptr-reset-release.cpp
+++ test/clang-tidy/misc-uniqueptr-reset-release.cpp
@@ -33,7 +33,7 @@
   // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: prefer ptr1 = std::move(ptr2)
   // CHECK-FIXES: a = std::move(c);
   a.reset(Create().release());
-  // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: prefer ptr1 = std::move(ptr2)
+  // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: prefer ptr = ReturnUnique() over 
ptr.reset(ReturnUnique().release()) [misc-uniqueptr-reset-release]
   // CHECK-FIXES: a = Create();
   x->reset(y->release());
   // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: prefer ptr1 = std::move(ptr2)

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
Index: clang-tidy/misc/UniqueptrResetRelease.cpp
===================================================================
--- clang-tidy/misc/UniqueptrResetRelease.cpp
+++ clang-tidy/misc/UniqueptrResetRelease.cpp
@@ -52,13 +52,18 @@
     LeftText = "*" + LeftText;
   if (ReleaseMember->isArrow())
     RightText = "*" + RightText;
+  std::string DiagText;
   // Even if x was rvalue, *x is not rvalue anymore.
-  if (!Right->isRValue() || ReleaseMember->isArrow())
+  if (!Right->isRValue() || ReleaseMember->isArrow()) {
     RightText = "std::move(" + RightText + ")";
+    DiagText = "prefer ptr1 = std::move(ptr2) over ptr1.reset(ptr2.release())";
+  } else {
+    DiagText =
+        "prefer ptr = ReturnUnique() over ptr.reset(ReturnUnique().release())";
+  }
   std::string NewText = LeftText + " = " + RightText;
 
-  diag(ResetMember->getExprLoc(),
-       "prefer ptr1 = std::move(ptr2) over ptr1.reset(ptr2.release())")
+  diag(ResetMember->getExprLoc(), DiagText)
       << FixItHint::CreateReplacement(
           CharSourceRange::getTokenRange(ResetCall->getSourceRange()), NewText);
 }
Index: test/clang-tidy/misc-uniqueptr-reset-release.cpp
===================================================================
--- test/clang-tidy/misc-uniqueptr-reset-release.cpp
+++ test/clang-tidy/misc-uniqueptr-reset-release.cpp
@@ -33,7 +33,7 @@
   // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: prefer ptr1 = std::move(ptr2)
   // CHECK-FIXES: a = std::move(c);
   a.reset(Create().release());
-  // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: prefer ptr1 = std::move(ptr2)
+  // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: prefer ptr = ReturnUnique() over ptr.reset(ReturnUnique().release()) [misc-uniqueptr-reset-release]
   // CHECK-FIXES: a = Create();
   x->reset(y->release());
   // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: prefer ptr1 = std::move(ptr2)
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to