#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_DEFAULT_MEMBER_INIT_H
#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_DEFAULT_MEMBER_INIT_H
#include "../ClangTidyCheck.h"
namespace clang {
namespace tidy {
namespace modernize {
class UseDefaultMemberInitCheck : public ClangTidyCheck {
public:
UseDefaultMemberInitCheck(StringRef Name, ClangTidyContext *Context);
bool isLanguageVersionSupported(const LangOptions &LangOpts) const override {
return LangOpts.CPlusPlus11;
}
void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
void registerMatchers(ast_matchers::MatchFinder *Finder) override;
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
llvm::Optional<TraversalKind> getCheckTraversalKind() const override {
return TK_IgnoreUnlessSpelledInSource;
}
private:
void checkDefaultInit(const ast_matchers::MatchFinder::MatchResult &Result,
const CXXCtorInitializer *Init);
void checkExistingInit(const ast_matchers::MatchFinder::MatchResult &Result,
const CXXCtorInitializer *Init);
const bool UseAssignment;
const bool IgnoreMacros;
};
}
}
}
#endif