1*8e21557dSCongcong Cai //===--- AvoidNestedConditionalOperatorCheck.h - clang-tidy -----*- C++ -*-===// 2*8e21557dSCongcong Cai // 3*8e21557dSCongcong Cai // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*8e21557dSCongcong Cai // See https://llvm.org/LICENSE.txt for license information. 5*8e21557dSCongcong Cai // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*8e21557dSCongcong Cai // 7*8e21557dSCongcong Cai //===----------------------------------------------------------------------===// 8*8e21557dSCongcong Cai 9*8e21557dSCongcong Cai #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_AVOID_NESTED_CONDITIONAL_OPERATOR_CHECK_H 10*8e21557dSCongcong Cai #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_AVOID_NESTED_CONDITIONAL_OPERATOR_CHECK_H 11*8e21557dSCongcong Cai 12*8e21557dSCongcong Cai #include "../ClangTidyCheck.h" 13*8e21557dSCongcong Cai 14*8e21557dSCongcong Cai namespace clang::tidy::readability { 15*8e21557dSCongcong Cai 16*8e21557dSCongcong Cai /// Identifies instances of nested conditional operators in the code. 17*8e21557dSCongcong Cai /// 18*8e21557dSCongcong Cai /// For the user-facing documentation see: 19*8e21557dSCongcong Cai /// http://clang.llvm.org/extra/clang-tidy/checks/readability/avoid-nested-conditional-operator.html 20*8e21557dSCongcong Cai class AvoidNestedConditionalOperatorCheck : public ClangTidyCheck { 21*8e21557dSCongcong Cai public: AvoidNestedConditionalOperatorCheck(StringRef Name,ClangTidyContext * Context)22*8e21557dSCongcong Cai AvoidNestedConditionalOperatorCheck(StringRef Name, ClangTidyContext *Context) 23*8e21557dSCongcong Cai : ClangTidyCheck(Name, Context) {} 24*8e21557dSCongcong Cai void registerMatchers(ast_matchers::MatchFinder *Finder) override; 25*8e21557dSCongcong Cai void check(const ast_matchers::MatchFinder::MatchResult &Result) override; getCheckTraversalKind()26*8e21557dSCongcong Cai std::optional<TraversalKind> getCheckTraversalKind() const override { 27*8e21557dSCongcong Cai return TK_IgnoreUnlessSpelledInSource; 28*8e21557dSCongcong Cai } 29*8e21557dSCongcong Cai }; 30*8e21557dSCongcong Cai 31*8e21557dSCongcong Cai } // namespace clang::tidy::readability 32*8e21557dSCongcong Cai 33*8e21557dSCongcong Cai #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_AVOID_NESTED_CONDITIONAL_OPERATOR_CHECK_H 34