xref: /llvm-project/clang-tools-extra/clang-tidy/readability/AvoidNestedConditionalOperatorCheck.h (revision 8e21557d0401a0046ff110daa50f21d02b71a2ee)
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