Author: Nathan James Date: 2020-06-22T11:07:24+01:00 New Revision: 23063296b539feb405fb3ce61711a3c1cc1c94d0
URL: https://github.com/llvm/llvm-project/commit/23063296b539feb405fb3ce61711a3c1cc1c94d0 DIFF: https://github.com/llvm/llvm-project/commit/23063296b539feb405fb3ce61711a3c1cc1c94d0.diff LOG: [clang-tidy] Improved accuracy of check list updater script - Added `FixItHint` comments to Check files for the script to mark those checks as offering fix-its when the fix-its are generated in another file. - Case insensitive file searching when looking for the file a checker code resides in. Also regenerated the list, sphinx had no issue generating the docs after this. Reviewed By: sylvestre.ledru Differential Revision: https://reviews.llvm.org/D81932 Added: Modified: clang-tools-extra/clang-tidy/abseil/StringFindStrContainsCheck.cpp clang-tools-extra/clang-tidy/add_new_check.py clang-tools-extra/clang-tidy/llvmlibc/RestrictSystemLibcHeadersCheck.cpp clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp clang-tools-extra/docs/clang-tidy/checks/list.rst Removed: ################################################################################ diff --git a/clang-tools-extra/clang-tidy/abseil/StringFindStrContainsCheck.cpp b/clang-tools-extra/clang-tidy/abseil/StringFindStrContainsCheck.cpp index f60ce2000766..87af9ea6cd5a 100644 --- a/clang-tools-extra/clang-tidy/abseil/StringFindStrContainsCheck.cpp +++ b/clang-tools-extra/clang-tidy/abseil/StringFindStrContainsCheck.cpp @@ -15,6 +15,9 @@ #include "clang/Tooling/Transformer/RewriteRule.h" #include "clang/Tooling/Transformer/Stencil.h" +// FixItHint - Hint to check documentation script to mark this check as +// providing a FixIt. + using namespace clang::ast_matchers; namespace clang { diff --git a/clang-tools-extra/clang-tidy/add_new_check.py b/clang-tools-extra/clang-tidy/add_new_check.py index 454d128a5dcb..231f43c0b8f3 100755 --- a/clang-tools-extra/clang-tidy/add_new_check.py +++ b/clang-tools-extra/clang-tidy/add_new_check.py @@ -289,6 +289,19 @@ def write_test(module_path, module, check_name, test_extension): """ % {'check_name_dashes': check_name_dashes}) +def get_actual_filename(dirname, filename): + if not os.path.isdir(dirname): + return "" + name = os.path.join(dirname, filename) + if (os.path.isfile(name)): + return name + caselessname = filename.lower() + for file in os.listdir(dirname): + if (file.lower() == caselessname): + return os.path.join(dirname, file) + return "" + + # Recreates the list of checks in the docs/clang-tidy/checks directory. def update_checks_list(clang_tidy_path): docs_dir = os.path.join(clang_tidy_path, '../docs/clang-tidy/checks') @@ -304,7 +317,8 @@ def update_checks_list(clang_tidy_path): def has_auto_fix(check_name): dirname, _, check_name = check_name.partition("-") - checkerCode = os.path.join(dirname, get_camel_name(check_name)) + ".cpp" + checkerCode = get_actual_filename(dirname, + get_camel_name(check_name) + '.cpp') if not os.path.isfile(checkerCode): return "" diff --git a/clang-tools-extra/clang-tidy/llvmlibc/RestrictSystemLibcHeadersCheck.cpp b/clang-tools-extra/clang-tidy/llvmlibc/RestrictSystemLibcHeadersCheck.cpp index 4a19b5359d4f..91842b4719c4 100644 --- a/clang-tools-extra/clang-tidy/llvmlibc/RestrictSystemLibcHeadersCheck.cpp +++ b/clang-tools-extra/clang-tidy/llvmlibc/RestrictSystemLibcHeadersCheck.cpp @@ -12,6 +12,9 @@ #include "clang/Lex/HeaderSearch.h" #include "clang/Lex/HeaderSearchOptions.h" +// FixItHint - Hint to check documentation script to mark this check as +// providing a FixIt. + namespace clang { namespace tidy { namespace llvm_libc { diff --git a/clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp b/clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp index 11d24432edaf..5ab3f3e26be2 100644 --- a/clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp @@ -8,6 +8,9 @@ #include "MakeSharedCheck.h" +// FixItHint - Hint to check documentation script to mark this check as +// providing a FixIt. + using namespace clang::ast_matchers; namespace clang { diff --git a/clang-tools-extra/docs/clang-tidy/checks/list.rst b/clang-tools-extra/docs/clang-tidy/checks/list.rst index 17331605aa64..baa142e28e7f 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/list.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst @@ -133,6 +133,7 @@ Clang-Tidy Checks `clang-analyzer-valist.Uninitialized <clang-analyzer-valist.Uninitialized.html>`_, `clang-analyzer-valist.Unterminated <clang-analyzer-valist.Unterminated.html>`_, `cppcoreguidelines-avoid-goto <cppcoreguidelines-avoid-goto.html>`_, + `cppcoreguidelines-avoid-non-const-global-variables <cppcoreguidelines-avoid-non-const-global-variables.html>`_, `cppcoreguidelines-init-variables <cppcoreguidelines-init-variables.html>`_, "Yes" `cppcoreguidelines-interfaces-global-init <cppcoreguidelines-interfaces-global-init.html>`_, `cppcoreguidelines-macro-usage <cppcoreguidelines-macro-usage.html>`_, @@ -189,7 +190,7 @@ Clang-Tidy Checks `llvm-prefer-isa-or-dyn-cast-in-conditionals <llvm-prefer-isa-or-dyn-cast-in-conditionals.html>`_, "Yes" `llvm-prefer-register-over-unsigned <llvm-prefer-register-over-unsigned.html>`_, "Yes" `llvm-twine-local <llvm-twine-local.html>`_, "Yes" - `llvmlibc-callee-namespace <llvmlibc-calle-namespace.html>`_, + `llvmlibc-callee-namespace <llvmlibc-callee-namespace.html>`_, `llvmlibc-implementation-in-namespace <llvmlibc-implementation-in-namespace.html>`_, `llvmlibc-restrict-system-libc-headers <llvmlibc-restrict-system-libc-headers.html>`_, "Yes" `misc-definitions-in-headers <misc-definitions-in-headers.html>`_, "Yes" @@ -291,7 +292,7 @@ Clang-Tidy Checks `readability-redundant-member-init <readability-redundant-member-init.html>`_, "Yes" `readability-redundant-preprocessor <readability-redundant-preprocessor.html>`_, `readability-redundant-smartptr-get <readability-redundant-smartptr-get.html>`_, "Yes" - `readability-redundant-string-cstr <readability-redundant-string-cstr.html>`_, + `readability-redundant-string-cstr <readability-redundant-string-cstr.html>`_, "Yes" `readability-redundant-string-init <readability-redundant-string-init.html>`_, "Yes" `readability-simplify-boolean-expr <readability-simplify-boolean-expr.html>`_, "Yes" `readability-simplify-subscript-expr <readability-simplify-subscript-expr.html>`_, "Yes" @@ -300,7 +301,7 @@ Clang-Tidy Checks `readability-string-compare <readability-string-compare.html>`_, "Yes" `readability-uniqueptr-delete-release <readability-uniqueptr-delete-release.html>`_, "Yes" `readability-uppercase-literal-suffix <readability-uppercase-literal-suffix.html>`_, "Yes" - `readability-use-anyofallof`_, "No" + `readability-use-anyofallof <readability-use-anyofallof.html>`_, `zircon-temporary-objects <zircon-temporary-objects.html>`_, @@ -390,7 +391,6 @@ Clang-Tidy Checks `clang-analyzer-unix.cstring.NullArg <clang-analyzer-unix.cstring.NullArg.html>`_, `Clang Static Analyzer <https://clang.llvm.org/docs/analyzer/checkers.html>`_, `cppcoreguidelines-avoid-c-arrays <cppcoreguidelines-avoid-c-arrays.html>`_, `modernize-avoid-c-arrays <modernize-avoid-c-arrays.html>`_, `cppcoreguidelines-avoid-magic-numbers <cppcoreguidelines-avoid-magic-numbers.html>`_, `readability-magic-numbers <readability-magic-numbers.html>`_, - `cppcoreguidelines-avoid-non-const-global-variables <cppcoreguidelines-avoid-non-const-global-variables.html>`_, , , "" `cppcoreguidelines-c-copy-assignment-signature <cppcoreguidelines-c-copy-assignment-signature.html>`_, `misc-unconventional-assign-operator <misc-unconventional-assign-operator.html>`_, `cppcoreguidelines-explicit-virtual-functions <cppcoreguidelines-explicit-virtual-functions.html>`_, `modernize-use-override <modernize-use-override.html>`_, "Yes" `cppcoreguidelines-non-private-member-variables-in-classes <cppcoreguidelines-non-private-member-variables-in-classes.html>`_, `misc-non-private-member-variables-in-classes <misc-non-private-member-variables-in-classes.html>`_, @@ -410,7 +410,7 @@ Clang-Tidy Checks `hicpp-new-delete-operators <hicpp-new-delete-operators.html>`_, `misc-new-delete-overloads <misc-new-delete-overloads.html>`_, `hicpp-no-array-decay <hicpp-no-array-decay.html>`_, `cppcoreguidelines-pro-bounds-array-to-pointer-decay <cppcoreguidelines-pro-bounds-array-to-pointer-decay.html>`_, `hicpp-no-malloc <hicpp-no-malloc.html>`_, `cppcoreguidelines-no-malloc <cppcoreguidelines-no-malloc.html>`_, - `hicpp-noexcept-move <hicpp-noexcept-move.html>`_, `performance-noexcept-move-constructor <performance-noexcept-move-constructor.html>`_, + `hicpp-noexcept-move <hicpp-noexcept-move.html>`_, `performance-noexcept-move-constructor <performance-noexcept-move-constructor.html>`_, "Yes" `hicpp-special-member-functions <hicpp-special-member-functions.html>`_, `cppcoreguidelines-special-member-functions <cppcoreguidelines-special-member-functions.html>`_, `hicpp-static-assert <hicpp-static-assert.html>`_, `misc-static-assert <misc-static-assert.html>`_, "Yes" `hicpp-undelegated-constructor <hicpp-undelegated-constructor.html>`_, `bugprone-undelegated-constructor <bugprone-undelegated-constructor.html>`_, @@ -424,4 +424,3 @@ Clang-Tidy Checks `hicpp-use-override <hicpp-use-override.html>`_, `modernize-use-override <modernize-use-override.html>`_, "Yes" `hicpp-vararg <hicpp-vararg.html>`_, `cppcoreguidelines-pro-type-vararg <cppcoreguidelines-pro-type-vararg.html>`_, `llvm-qualified-auto <llvm-qualified-auto.html>`_, `readability-qualified-auto <readability-qualified-auto.html>`_, "Yes" - _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits