malcolm.parsons added a comment.
How do I add FixIt hints?
They should be simple removals, but how do I decide whether to remove the
following comma, preceding comma or preceding colon?
================
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();
----------------
sbenza wrote:
> 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.
Yes, more tests needed.
================
Comment at: clang-tidy/readability/RedundantMemberInitCheck.cpp:39
@@ +38,3 @@
+
+ if (std::find_if(begin(arguments), end(arguments), [](const Expr *expr) {
+ return !expr->isDefaultArgument();
----------------
sbenza wrote:
> You want `std::none_of` instead of `std::find_if`.
> (or use `std::any_of` and don't negate the expression in the lambda)
Maybe I only need to check the first argument - if that's defaulted then they
all are.
================
Comment at: docs/clang-tidy/checks/readability-redundant-member-init.rst:6
@@ +5,3 @@
+
+Finds unnecessary member initializations.
+
----------------
sbenza wrote:
> Explain when they are unnecessary.
"Finds member initializations that are unnecessary because the same default
constructor would be called if they were not present"
Repository:
rL LLVM
https://reviews.llvm.org/D24339
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits