19ae5896dSCarlos Galvez //===--- AvoidConstOrRefDataMembersCheck.h - clang-tidy ---------*- C++ -*-===// 29ae5896dSCarlos Galvez // 39ae5896dSCarlos Galvez // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 49ae5896dSCarlos Galvez // See https://llvm.org/LICENSE.txt for license information. 59ae5896dSCarlos Galvez // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 69ae5896dSCarlos Galvez // 79ae5896dSCarlos Galvez //===----------------------------------------------------------------------===// 89ae5896dSCarlos Galvez 99ae5896dSCarlos Galvez #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_AVOIDCONSTORREFDATAMEMBERSCHECK_H 109ae5896dSCarlos Galvez #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_AVOIDCONSTORREFDATAMEMBERSCHECK_H 119ae5896dSCarlos Galvez 129ae5896dSCarlos Galvez #include "../ClangTidyCheck.h" 139ae5896dSCarlos Galvez 14*4718da50SCarlos Galvez namespace clang::tidy::cppcoreguidelines { 159ae5896dSCarlos Galvez 169ae5896dSCarlos Galvez /// Const-qualified or reference data members in classes should be avoided, as 179ae5896dSCarlos Galvez /// they make the class non-copy-assignable. 189ae5896dSCarlos Galvez /// 199ae5896dSCarlos Galvez /// For the user-facing documentation see: 209ae5896dSCarlos Galvez /// http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members.html 219ae5896dSCarlos Galvez class AvoidConstOrRefDataMembersCheck : public ClangTidyCheck { 229ae5896dSCarlos Galvez public: AvoidConstOrRefDataMembersCheck(StringRef Name,ClangTidyContext * Context)239ae5896dSCarlos Galvez AvoidConstOrRefDataMembersCheck(StringRef Name, ClangTidyContext *Context) 249ae5896dSCarlos Galvez : ClangTidyCheck(Name, Context) {} isLanguageVersionSupported(const LangOptions & LangOpts)259ae5896dSCarlos Galvez bool isLanguageVersionSupported(const LangOptions &LangOpts) const override { 269ae5896dSCarlos Galvez return LangOpts.CPlusPlus; 279ae5896dSCarlos Galvez } 289ae5896dSCarlos Galvez void registerMatchers(ast_matchers::MatchFinder *Finder) override; 299ae5896dSCarlos Galvez void check(const ast_matchers::MatchFinder::MatchResult &Result) override; 309ae5896dSCarlos Galvez }; 319ae5896dSCarlos Galvez 32*4718da50SCarlos Galvez } // namespace clang::tidy::cppcoreguidelines 339ae5896dSCarlos Galvez 349ae5896dSCarlos Galvez #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_AVOIDCONSTORREFDATAMEMBERSCHECK_H 35