--- # TODO: We currently only enable select clang-tidy checks. While many checks provide little value or # produce false positives, try to incrementally enable most of them. # TODO: these checks are in progress of cleaning up # Note: cppcoreguidelines-noexcept-destructor is designed to detect destructors that are missing # noexcept. We always use noexcept(false) as per KJ-style, but this check works for our purposes # too. Checks: > bugprone-argument-comment, bugprone-capturing-this-in-member-variable, bugprone-dynamic-static-initializers, bugprone-forward-declaration-namespace, bugprone-invalid-enum-default-initialization, bugprone-move-forwarding-reference, bugprone-return-const-ref-from-parameter, bugprone-suspicious-*, -bugprone-suspicious-semicolon, bugprone-undefined-memory-manipulation, bugprone-unhandled-self-assignment, bugprone-unused-raii, bugprone-use-after-move, cppcoreguidelines-c-copy-assignment-signature, cppcoreguidelines-misleading-capture-default-by-value, cppcoreguidelines-noexcept-destructor, cppcoreguidelines-prefer-member-initializer, google-readability-casting, misc-confusable-identifiers, misc-header-include-cycle, misc-redundant-expression, misc-throw-by-value-catch-by-reference, misc-unused-alias-decls, misc-unused-using-decls, modernize-loop-convert, modernize-macro-to-enum, modernize-redundant-void-arg, modernize-type-traits, modernize-unary-static-assert, modernize-use-bool-literals, modernize-use-constraints, modernize-use-emplace, modernize-use-equals-delete, modernize-use-nullptr, modernize-use-string-view, modernize-use-transparent-functors, modernize-use-using, performance-*, -performance-enum-size, -performance-no-int-to-ptr, -performance-noexcept-move-constructor, -performance-noexcept-swap, -performance-unnecessary-value-param, readability-avoid-const-params-in-decls, readability-container-contains, readability-container-size-empty, readability-delete-null-pointer, readability-duplicate-include, readability-enum-initial-value, readability-redundant-*, -readability-redundant-inline-specifier, -readability-redundant-parentheses, -readability-redundant-smartptr-get, readability-reference-to-constructed-temporary, readability-static-accessed-through-instance, readability-use-concise-preprocessor-directives # TODO: Fix and enable # bugprone-derived-method-shadowing-base-method # bugprone-parent-virtual-call # cppcoreguidelines-interfaces-global-init # cppcoreguidelines-missing-std-forward # cppcoreguidelines-pro-type-member-init # modernize-use-equals-default # modernize-use-override # modernize-use-ranges # readability-avoid-return-with-void-value # modernize-avoid-variadic-functions # readability-convert-member-functions-to-static # readability-redundant-smartptr-get # readability-use-anyofallof WarningsAsErrors: '*' HeaderFilterRegex: '.*src/workerd/.*' CheckOptions: # JSG has very entrenched include cycles - key: misc-header-include-cycle.IgnoredFilesList value: "jsg/jsg.h|jsg/dom-exception.h" - key: cppcoreguidelines-missing-std-forward.ForwardFunction value: "kj::fwd"