
Added IgnoreTemplateInstantiations option to modernize-use-override check. Allows to ignore virtual function overrides that are part of template instantiations. This can be useful in cases where the use of the "override" keyword is not appropriate or causes issues with template specialization. Fixes #38276. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D147924
39 lines
1.4 KiB
C++
39 lines
1.4 KiB
C++
//===--- UseOverrideCheck.h - clang-tidy ------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USEOVERRIDECHECK_H
|
|
#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USEOVERRIDECHECK_H
|
|
|
|
#include "../ClangTidyCheck.h"
|
|
|
|
namespace clang::tidy::modernize {
|
|
|
|
/// Use C++11's `override` and remove `virtual` where applicable.
|
|
class UseOverrideCheck : public ClangTidyCheck {
|
|
public:
|
|
UseOverrideCheck(StringRef Name, ClangTidyContext *Context);
|
|
|
|
bool isLanguageVersionSupported(const LangOptions &LangOpts) const override {
|
|
return LangOpts.CPlusPlus11;
|
|
}
|
|
void registerMatchers(ast_matchers::MatchFinder *Finder) override;
|
|
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
|
|
void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
|
|
|
|
private:
|
|
const bool IgnoreDestructors;
|
|
const bool IgnoreTemplateInstantiations;
|
|
const bool AllowOverrideAndFinal;
|
|
const StringRef OverrideSpelling;
|
|
const StringRef FinalSpelling;
|
|
};
|
|
|
|
} // namespace clang::tidy::modernize
|
|
|
|
#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USEOVERRIDECHECK_H
|