42 lines · c
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_GOOGLE_AVOIDCSTYLECASTSCHECK_H10#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_GOOGLE_AVOIDCSTYLECASTSCHECK_H11 12#include "../ClangTidyCheck.h"13 14namespace clang::tidy::google::readability {15 16/// Finds usages of C-style casts.17///18/// https://google.github.io/styleguide/cppguide.html#Casting19///20/// Corresponding cpplint.py check name: 'readability/casting'.21///22/// This check is similar to `-Wold-style-cast`, but it suggests automated fixes23/// in some cases. The reported locations should not be different from the24/// ones generated by `-Wold-style-cast`.25///26/// For the user-facing documentation see:27/// https://clang.llvm.org/extra/clang-tidy/checks/google/readability-casting.html28class AvoidCStyleCastsCheck : public ClangTidyCheck {29public:30 AvoidCStyleCastsCheck(StringRef Name, ClangTidyContext *Context)31 : ClangTidyCheck(Name, Context) {}32 void registerMatchers(ast_matchers::MatchFinder *Finder) override;33 void check(const ast_matchers::MatchFinder::MatchResult &Result) override;34 std::optional<TraversalKind> getCheckTraversalKind() const override {35 return TK_IgnoreUnlessSpelledInSource;36 }37};38 39} // namespace clang::tidy::google::readability40 41#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_GOOGLE_AVOIDCSTYLECASTSCHECK_H42