From bcf23661d08a6f77d873d2b985b34cc70c9d39e7 Mon Sep 17 00:00:00 2001 From: Malcolm Parsons Date: Thu, 1 Dec 2016 17:24:42 +0000 Subject: [PATCH] [clang-tidy] Rename modernize-use-default to modernize-use-equals-default Reviewers: angelgarcia, aaron.ballman, alexfh Subscribers: JDevlieghere, Prazek, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D26511 llvm-svn: 288375 --- clang-tools-extra/clang-tidy/add_new_check.py | 7 +++++- .../clang-tidy/modernize/CMakeLists.txt | 2 +- .../clang-tidy/modernize/ModernizeTidyModule.cpp | 4 ++-- ...eDefaultCheck.cpp => UseEqualsDefaultCheck.cpp} | 8 +++---- .../{UseDefaultCheck.h => UseEqualsDefaultCheck.h} | 14 +++++------ clang-tools-extra/docs/ReleaseNotes.rst | 3 +++ clang-tools-extra/docs/clang-tidy/checks/list.rst | 4 ++-- .../clang-tidy/checks/modernize-use-default.rst | 28 ++++------------------ .../checks/modernize-use-equals-default.rst | 28 ++++++++++++++++++++++ ...y.cpp => modernize-use-equals-default-copy.cpp} | 6 ++--- ...pp => modernize-use-equals-default-delayed.cpp} | 2 +- ...efault.cpp => modernize-use-equals-default.cpp} | 6 ++--- 12 files changed, 65 insertions(+), 47 deletions(-) rename clang-tools-extra/clang-tidy/modernize/{UseDefaultCheck.cpp => UseEqualsDefaultCheck.cpp} (97%) rename clang-tools-extra/clang-tidy/modernize/{UseDefaultCheck.h => UseEqualsDefaultCheck.h} (69%) create mode 100644 clang-tools-extra/docs/clang-tidy/checks/modernize-use-equals-default.rst rename clang-tools-extra/test/clang-tidy/{modernize-use-default-copy.cpp => modernize-use-equals-default-copy.cpp} (98%) rename clang-tools-extra/test/clang-tidy/{modernize-use-default-delayed.cpp => modernize-use-equals-default-delayed.cpp} (60%) rename clang-tools-extra/test/clang-tidy/{modernize-use-default.cpp => modernize-use-equals-default.cpp} (94%) diff --git a/clang-tools-extra/clang-tidy/add_new_check.py b/clang-tools-extra/clang-tidy/add_new_check.py index 868ccd1..7032ad9 100755 --- a/clang-tools-extra/clang-tidy/add_new_check.py +++ b/clang-tools-extra/clang-tidy/add_new_check.py @@ -226,8 +226,13 @@ def update_checks_list(clang_tidy_path): def format_link(doc_file): check_name = doc_file.replace('.rst', '') with open(os.path.join(docs_dir, doc_file), 'r') as doc: + content = doc.read() + match = re.search('.*:orphan:.*', content) + if match: + return '' + match = re.search('.*:http-equiv=refresh: \d+;URL=(.*).html.*', - doc.read()) + content) if match: return ' %(check)s (redirects to %(target)s) <%(check)s>\n' % { 'check': check_name, diff --git a/clang-tools-extra/clang-tidy/modernize/CMakeLists.txt b/clang-tools-extra/clang-tidy/modernize/CMakeLists.txt index 8fa3b00..6d178e0 100644 --- a/clang-tools-extra/clang-tidy/modernize/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/modernize/CMakeLists.txt @@ -16,8 +16,8 @@ add_clang_library(clangTidyModernizeModule ShrinkToFitCheck.cpp UseAutoCheck.cpp UseBoolLiteralsCheck.cpp - UseDefaultCheck.cpp UseEmplaceCheck.cpp + UseEqualsDefaultCheck.cpp UseEqualsDeleteCheck.cpp UseNullptrCheck.cpp UseOverrideCheck.cpp diff --git a/clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp b/clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp index 63147da..07b450d 100644 --- a/clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp +++ b/clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp @@ -22,8 +22,8 @@ #include "ShrinkToFitCheck.h" #include "UseAutoCheck.h" #include "UseBoolLiteralsCheck.h" -#include "UseDefaultCheck.h" #include "UseEmplaceCheck.h" +#include "UseEqualsDefaultCheck.h" #include "UseEqualsDeleteCheck.h" #include "UseNullptrCheck.h" #include "UseOverrideCheck.h" @@ -56,8 +56,8 @@ public: CheckFactories.registerCheck("modernize-use-auto"); CheckFactories.registerCheck( "modernize-use-bool-literals"); - CheckFactories.registerCheck("modernize-use-default"); CheckFactories.registerCheck("modernize-use-emplace"); + CheckFactories.registerCheck("modernize-use-equals-default"); CheckFactories.registerCheck( "modernize-use-equals-delete"); CheckFactories.registerCheck("modernize-use-nullptr"); diff --git a/clang-tools-extra/clang-tidy/modernize/UseDefaultCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp similarity index 97% rename from clang-tools-extra/clang-tidy/modernize/UseDefaultCheck.cpp rename to clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp index 09595f4..1b67714 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseDefaultCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp @@ -1,4 +1,4 @@ -//===--- UseDefaultCheck.cpp - clang-tidy----------------------------------===// +//===--- UseEqualsDefaultCheck.cpp - clang-tidy----------------------------===// // // The LLVM Compiler Infrastructure // @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// -#include "UseDefaultCheck.h" +#include "UseEqualsDefaultCheck.h" #include "clang/AST/ASTContext.h" #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/Lex/Lexer.h" @@ -197,7 +197,7 @@ static bool bodyEmpty(const ASTContext *Context, const CompoundStmt *Body) { return !Invalid && std::strspn(Text.data(), " \t\r\n") == Text.size(); } -void UseDefaultCheck::registerMatchers(MatchFinder *Finder) { +void UseEqualsDefaultCheck::registerMatchers(MatchFinder *Finder) { if (getLangOpts().CPlusPlus) { // Destructor. Finder->addMatcher(cxxDestructorDecl(isDefinition()).bind(SpecialFunction), @@ -229,7 +229,7 @@ void UseDefaultCheck::registerMatchers(MatchFinder *Finder) { } } -void UseDefaultCheck::check(const MatchFinder::MatchResult &Result) { +void UseEqualsDefaultCheck::check(const MatchFinder::MatchResult &Result) { std::string SpecialFunctionName; // Both CXXConstructorDecl and CXXDestructorDecl inherit from CXXMethodDecl. diff --git a/clang-tools-extra/clang-tidy/modernize/UseDefaultCheck.h b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.h similarity index 69% rename from clang-tools-extra/clang-tidy/modernize/UseDefaultCheck.h rename to clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.h index aa1859d..dfefed6 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseDefaultCheck.h +++ b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.h @@ -1,4 +1,4 @@ -//===--- UseDefaultCheck.h - clang-tidy--------------------------*- C++ -*-===// +//===--- UseEqualsDefaultCheck.h - clang-tidy--------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -7,8 +7,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_DEFAULT_H -#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_DEFAULT_H +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_EQUALS_DEFAULT_H +#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_EQUALS_DEFAULT_H #include "../ClangTidy.h" @@ -34,10 +34,10 @@ namespace modernize { /// \endcode /// /// For the user-facing documentation see: -/// http://clang.llvm.org/extra/clang-tidy/checks/modernize-use-default.html -class UseDefaultCheck : public ClangTidyCheck { +/// http://clang.llvm.org/extra/clang-tidy/checks/modernize-use-equals-default.html +class UseEqualsDefaultCheck : public ClangTidyCheck { public: - UseDefaultCheck(StringRef Name, ClangTidyContext *Context) + UseEqualsDefaultCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context) {} void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; @@ -47,4 +47,4 @@ public: } // namespace tidy } // namespace clang -#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_DEFAULT_H +#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_EQUALS_DEFAULT_H diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 3dc6ba8..fb30097 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -91,6 +91,9 @@ Improvements to clang-tidy `_ check now warns about variable declarations that are initialized with a cast. +- The modernize-use-default check has been renamed to `modernize-use-equals-default + `_. + - New `modernize-use-equals-delete `_ check diff --git a/clang-tools-extra/docs/clang-tidy/checks/list.rst b/clang-tools-extra/docs/clang-tidy/checks/list.rst index 0893771..6cff1a2 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/list.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst @@ -18,7 +18,7 @@ Clang-Tidy Checks cert-err61-cpp (redirects to misc-throw-by-value-catch-by-reference) cert-fio38-c (redirects to misc-non-copyable-objects) cert-flp30-c - cert-msc30-c (redirects to cert-limited-randomness) + cert-msc30-c (redirects to cert-msc50-cpp) cert-msc50-cpp cert-oop11-cpp (redirects to misc-move-constructor-init) cppcoreguidelines-interfaces-global-init @@ -109,8 +109,8 @@ Clang-Tidy Checks modernize-shrink-to-fit modernize-use-auto modernize-use-bool-literals - modernize-use-default modernize-use-emplace + modernize-use-equals-default modernize-use-equals-delete modernize-use-nullptr modernize-use-override diff --git a/clang-tools-extra/docs/clang-tidy/checks/modernize-use-default.rst b/clang-tools-extra/docs/clang-tidy/checks/modernize-use-default.rst index ef9ddd6..9090e5f 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/modernize-use-default.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/modernize-use-default.rst @@ -1,28 +1,10 @@ +:orphan: .. title:: clang-tidy - modernize-use-default +.. meta:: + :http-equiv=refresh: 5;URL=modernize-use-equals-default.html modernize-use-default ===================== -This check replaces default bodies of special member functions with ``= -default;``. The explicitly defaulted function declarations enable more -opportunities in optimization, because the compiler might treat explicitly -defaulted functions as trivial. - -.. code-block:: c++ - - struct A { - A() {} - ~A(); - }; - A::~A() {} - - // becomes - - struct A { - A() = default; - ~A(); - }; - A::~A() = default; - -.. note:: - Move-constructor and move-assignment operator are not supported yet. +This check has been renamed to +`modernize-use-equals-default `_. diff --git a/clang-tools-extra/docs/clang-tidy/checks/modernize-use-equals-default.rst b/clang-tools-extra/docs/clang-tidy/checks/modernize-use-equals-default.rst new file mode 100644 index 0000000..b87f883 --- /dev/null +++ b/clang-tools-extra/docs/clang-tidy/checks/modernize-use-equals-default.rst @@ -0,0 +1,28 @@ +.. title:: clang-tidy - modernize-use-equals-default + +modernize-use-equals-default +============================ + +This check replaces default bodies of special member functions with ``= +default;``. The explicitly defaulted function declarations enable more +opportunities in optimization, because the compiler might treat explicitly +defaulted functions as trivial. + +.. code-block:: c++ + + struct A { + A() {} + ~A(); + }; + A::~A() {} + + // becomes + + struct A { + A() = default; + ~A(); + }; + A::~A() = default; + +.. note:: + Move-constructor and move-assignment operator are not supported yet. diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-default-copy.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-equals-default-copy.cpp similarity index 98% rename from clang-tools-extra/test/clang-tidy/modernize-use-default-copy.cpp rename to clang-tools-extra/test/clang-tidy/modernize-use-equals-default-copy.cpp index 0a349fb..df21cc0 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-use-default-copy.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-use-equals-default-copy.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy %s modernize-use-default %t -- -- -std=c++11 -fno-delayed-template-parsing -fexceptions +// RUN: %check_clang_tidy %s modernize-use-equals-default %t -- -- -std=c++11 -fno-delayed-template-parsing -fexceptions // Out of line definition. struct OL { @@ -7,13 +7,13 @@ struct OL { int Field; }; OL::OL(const OL &Other) : Field(Other.Field) {} -// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: use '= default' to define a trivial copy constructor [modernize-use-default] +// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: use '= default' to define a trivial copy constructor [modernize-use-equals-default] // CHECK-FIXES: OL::OL(const OL &Other) = default; OL &OL::operator=(const OL &Other) { Field = Other.Field; return *this; } -// CHECK-MESSAGES: :[[@LINE-4]]:9: warning: use '= default' to define a trivial copy-assignment operator [modernize-use-default] +// CHECK-MESSAGES: :[[@LINE-4]]:9: warning: use '= default' to define a trivial copy-assignment operator [modernize-use-equals-default] // CHECK-FIXES: OL &OL::operator=(const OL &Other) = default; // Inline. diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-default-delayed.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-equals-default-delayed.cpp similarity index 60% rename from clang-tools-extra/test/clang-tidy/modernize-use-default-delayed.cpp rename to clang-tools-extra/test/clang-tidy/modernize-use-equals-default-delayed.cpp index c7163e8..953d88a 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-use-default-delayed.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-use-equals-default-delayed.cpp @@ -1,4 +1,4 @@ -// RUN: clang-tidy %s -checks=-*,modernize-use-default -- -std=c++11 -fdelayed-template-parsing -fexceptions | count 0 +// RUN: clang-tidy %s -checks=-*,modernize-use-equals-default -- -std=c++11 -fdelayed-template-parsing -fexceptions | count 0 // Note: this test expects no diagnostics, but FileCheck cannot handle that, // hence the use of | count 0. diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-default.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-equals-default.cpp similarity index 94% rename from clang-tools-extra/test/clang-tidy/modernize-use-default.cpp rename to clang-tools-extra/test/clang-tidy/modernize-use-equals-default.cpp index 14ca1bc..4892e58 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-use-default.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-use-equals-default.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy %s modernize-use-default %t -- -- -std=c++11 -fno-delayed-template-parsing -fexceptions +// RUN: %check_clang_tidy %s modernize-use-equals-default %t -- -- -std=c++11 -fno-delayed-template-parsing -fexceptions // Out of line definition. class OL { @@ -8,10 +8,10 @@ public: }; OL::OL() {} -// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: use '= default' to define a trivial default constructor [modernize-use-default] +// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: use '= default' to define a trivial default constructor [modernize-use-equals-default] // CHECK-FIXES: OL::OL() = default; OL::~OL() {} -// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: use '= default' to define a trivial destructor [modernize-use-default] +// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: use '= default' to define a trivial destructor [modernize-use-equals-default] // CHECK-FIXES: OL::~OL() = default; // Inline definitions. -- 2.7.4