ccotter updated this revision to Diff 487081.
ccotter added a comment.
- Use "capture default" consistently and update diagnostic message
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141133/new/
https://reviews.llvm.org/D141133
Files:
clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCaptureThisWithCaptureDefaultCheck.cpp
clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCaptureThisWithCaptureDefaultCheck.h
clang-tools-extra/docs/ReleaseNotes.rst
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-capture-this-with-capture-default.rst
clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-capture-this-with-capture-default.cpp
Index: clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-capture-this-with-capture-default.cpp
===================================================================
--- clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-capture-this-with-capture-default.cpp
+++ clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-capture-this-with-capture-default.cpp
@@ -6,47 +6,47 @@
int local2{};
auto explicit_this_capture = [=, this]() { };
- // CHECK-MESSAGES: :[[@LINE-1]]:35: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:35: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [this]() { };
auto explicit_this_capture_locals1 = [=, this]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:43: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:43: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [local, this]() { return (local+x) > 10; };
auto explicit_this_capture_locals2 = [=, this]() { return (local+local2) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:43: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:43: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [local, local2, this]() { return (local+local2) > 10; };
auto explicit_this_capture_local_ref = [=, this, &local]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:45: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:45: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [this, &local]() { return (local+x) > 10; };
auto explicit_this_capture_local_ref2 = [=, &local, this]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:46: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:46: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [&local, this]() { return (local+x) > 10; };
auto explicit_this_capture_local_ref3 = [=, &local, this, &local2]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:46: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:46: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [&local, this, &local2]() { return (local+x) > 10; };
auto explicit_this_capture_local_ref4 = [=, &local, &local2, this]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:46: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:46: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [&local, &local2, this]() { return (local+x) > 10; };
auto explicit_this_capture_local_ref_extra_whitespace = [=, & local, &local2, this]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:62: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:62: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [& local, &local2, this]() { return (local+x) > 10; }
auto explicit_this_capture_local_ref_with_comment = [=, & /* byref */ local, &local2, this]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:58: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:58: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [& /* byref */ local, &local2, this]() { return (local+x) > 10; }
auto implicit_this_capture = [=]() { return x > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:35: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:35: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [this]() { return x > 10; };
auto implicit_this_capture_local = [=]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:41: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:41: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [local, this]() { return (local+x) > 10; };
}
@@ -55,23 +55,23 @@
int local2{};
auto ref_explicit_this_capture = [&, this]() { };
- // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [this]() { };
auto ref_explicit_this_capture_local = [&, this]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:45: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:45: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [&local, this]() { return (local+x) > 10; };
auto ref_implicit_this_capture = [&]() { return x > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:39: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [this]() { return x > 10; };
auto ref_implicit_this_capture_local = [&]() { return (local+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:45: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:45: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [&local, this]() { return (local+x) > 10; };
auto ref_implicit_this_capture_locals = [&]() { return (local+local2+x) > 10; };
- // CHECK-MESSAGES: :[[@LINE-1]]:46: warning: lambdas that capture this should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
+ // CHECK-MESSAGES: :[[@LINE-1]]:46: warning: lambdas that capture 'this' should not specify a capture default [cppcoreguidelines-avoid-capture-this-with-capture-default]
// CHECK-FIXES: [&local, &local2, this]() { return (local+local2+x) > 10; };
}
Index: clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-capture-this-with-capture-default.rst
===================================================================
--- clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-capture-this-with-capture-default.rst
+++ clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-capture-this-with-capture-default.rst
@@ -3,9 +3,12 @@
cppcoreguidelines-avoid-capture-this-with-capture-default
=========================================================
-Default lambda captures in member functions can be misleading about
+Warns when lambda specify a capture default and capture ``this``. The check also
+offers fix-its.
+
+Capture-deafults in member functions can be misleading about
whether data members are captured by value or reference. For example,
-specifying the default capture ``[=]`` will still capture data members
+specifying the capture default ``[=]`` will still capture data members
by reference.
Examples:
Index: clang-tools-extra/docs/ReleaseNotes.rst
===================================================================
--- clang-tools-extra/docs/ReleaseNotes.rst
+++ clang-tools-extra/docs/ReleaseNotes.rst
@@ -112,7 +112,7 @@
<clang-tidy/checks/cppcoreguidelines/avoid-capture-this-with-capture-default>` check.
Warns when lambda specify a capture default and capture ``this``. The check also
- offers FixIts.
+ offers fix-its.
- New :doc:`cppcoreguidelines-avoid-const-or-ref-data-members
<clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members>` check.
Index: clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCaptureThisWithCaptureDefaultCheck.h
===================================================================
--- clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCaptureThisWithCaptureDefaultCheck.h
+++ clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCaptureThisWithCaptureDefaultCheck.h
@@ -15,11 +15,11 @@
namespace tidy {
namespace cppcoreguidelines {
-/// Default lambda captures in member functions can be misleading about
-/// whether capturing data member is by value or reference. For example,
+/// Capture defaults lambas defined in in member functions can be misleading
+/// about whether capturing data member is by value or reference. For example,
/// [=] will capture local variables by value but member variables by
/// reference. CppCoreGuideline F.54 suggests to always be explicit
-/// and never specify a default capture when also capturing this.
+/// and never specify a capture default when also capturing this.
///
/// For the user-facing documentation see:
/// http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/avoid-capture-this-with-capture-default.html
Index: clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCaptureThisWithCaptureDefaultCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCaptureThisWithCaptureDefaultCheck.cpp
+++ clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCaptureThisWithCaptureDefaultCheck.cpp
@@ -82,7 +82,7 @@
if (Lambda->getCaptureDefault() != LCD_None) {
auto Diag = diag(
Lambda->getCaptureDefaultLoc(),
- "lambdas that capture this should not specify a capture default");
+ "lambdas that capture 'this' should not specify a capture default");
std::string ReplacementText = createReplacementText(Lambda);
SourceLocation DefaultCaptureEnd =
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits