aaron.ballman added inline comments.
================
Comment at: clang-tidy/modernize/UseEqualsDeleteCheck.cpp:29
+ cxxMethodDecl(
+ anyOf(isCopyAssignmentOperator(), isMoveAssignmentOperator())),
+ cxxDestructorDecl()));
----------------
How about a conversion operator, like `operator bool()`? You'll sometimes see
that one declared privately for similar reasons.
================
Comment at: clang-tidy/modernize/UseEqualsDeleteCheck.cpp:37
+ // Ensure that all methods except private special member
+ // functions are defined
+ hasParent(cxxRecordDecl(hasMethod(unless(
----------------
Missing a full stop at the end of the comment.
================
Comment at: clang-tidy/modernize/UseEqualsDeleteCheck.cpp:46
+void UseEqualsDeleteCheck::check(const MatchFinder::MatchResult &Result) {
+ const auto *SpecialFunction =
+ Result.Nodes.getNodeAs<CXXMethodDecl>("SpecialFunction");
----------------
Should rename this to not hide the global `SpecialFunction` object, and use the
global `SpecialFunction` object in place of the string literal here.
Alternatively, leave this name alone and remove the global variable and just
use the string literal; either is fine.
================
Comment at: clang-tidy/modernize/UseEqualsDeleteCheck.cpp:52
+ diag(SpecialFunction->getLocation(),
+ "use '= delete' to prevent a default special member function")
+ << FixItHint::CreateInsertion(EndLoc, " = delete");
----------------
This diagnostic isn't very clear to me -- what does it mean to "prevent" a
default special member function?
The fixit for this is also somewhat unsatisfying as this takes a private,
not-defined function and turns it into a private, deleted function. That's a
very small win, because it only impacts code which could access the special
member function in the first place (some compilers give a diagnostic about the
special member function being inaccessible even if it's explicitly marked as
deleted; clang is not one such compiler). Do we have a way to rewrite the
access specifier for the special member function as well (kind of like how we
have a way to handle includes we're adding)? I am guessing not yet, but if we
do, that would be fantastic to use here.
Note, I don't think this should hold up your patch or the fixit. A small win is
still a win. :-)
================
Comment at: test/clang-tidy/modernize-use-equals-delete.cpp:93
+private:
+ NegativeConstructNotImpl(const NegativeConstructNotImpl &);
+};
----------------
Phab will not let me delete the unsubmitted comment I had about this, so I am
leaving a junk comment instead. Your move, Phabricator.
https://reviews.llvm.org/D26138
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits