sbenza added inline comments.

================
Comment at: clang-tidy/readability/RedundantMemberInitCheck.cpp:33
@@ +32,3 @@
+  const auto *Init = Result.Nodes.getNodeAs<CXXCtorInitializer>("init");
+  const auto *Construct = 
Result.Nodes.getNodeAs<CXXConstructExpr>("construct");
+  const auto arguments = Construct->arguments();
----------------
These construct expressions might actually have side effects that you would not 
get if you omit them.
For example, aggregates will be value initialized. If you remove it you change 
the behavior.

The tests should include defaulted vs non-defaulted default constructor, 
user-defined/user-provided/implicit default constructor, aggregates with and 
without trivially constructible members, etc.

================
Comment at: clang-tidy/readability/RedundantMemberInitCheck.cpp:34
@@ +33,3 @@
+  const auto *Construct = 
Result.Nodes.getNodeAs<CXXConstructExpr>("construct");
+  const auto arguments = Construct->arguments();
+
----------------
Prazek wrote:
> Arguments (upper case)
Arguments variable name. (should start with upper case)

================
Comment at: clang-tidy/readability/RedundantMemberInitCheck.cpp:36
@@ +35,3 @@
+
+  using std::begin;
+  using std::end;
----------------
There's no need for these using declarations.
Just do arguments.begin()/arguments.end().
They are using in generic code. This is not generic code.

================
Comment at: clang-tidy/readability/RedundantMemberInitCheck.cpp:39
@@ +38,3 @@
+
+  if (std::find_if(begin(arguments), end(arguments), [](const Expr *expr) {
+        return !expr->isDefaultArgument();
----------------
You want `std::none_of` instead of `std::find_if`.
(or use `std::any_of` and don't negate the expression in the lambda)

================
Comment at: docs/clang-tidy/checks/readability-redundant-member-init.rst:6
@@ +5,3 @@
+
+Finds unnecessary member initializations.                                      
                                         
+                                                                               
                                         
----------------
Explain when they are unnecessary.


Repository:
  rL LLVM

https://reviews.llvm.org/D24339



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to