blob: 8a6842b498c918629d8d5028901f4c75208695ca [file] [log] [blame]
Daniel Jasperd07c8402013-07-29 08:19:24 +00001//===--- tools/extra/clang-tidy/ClangTidyModule.cpp - Clang tidy tool -----===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9///
10/// \file Implements classes required to build clang-tidy modules.
11///
12//===----------------------------------------------------------------------===//
13
14#include "ClangTidyModule.h"
Daniel Jasperd07c8402013-07-29 08:19:24 +000015
16namespace clang {
17namespace tidy {
18
Daniel Jasperd07c8402013-07-29 08:19:24 +000019ClangTidyCheckFactories::~ClangTidyCheckFactories() {
Alexander Kornienkodf1e3cb2014-03-06 10:17:46 +000020 for (const auto &Factory : Factories)
21 delete Factory.second;
Daniel Jasperd07c8402013-07-29 08:19:24 +000022}
Alexander Kornienkodf1e3cb2014-03-06 10:17:46 +000023
Daniel Jasperd07c8402013-07-29 08:19:24 +000024void ClangTidyCheckFactories::addCheckFactory(StringRef Name,
25 CheckFactoryBase *Factory) {
Daniel Jasperd07c8402013-07-29 08:19:24 +000026 Factories[Name] = Factory;
27}
28
29void ClangTidyCheckFactories::createChecks(
Alexander Kornienkofb9e92b2013-12-19 19:57:05 +000030 ChecksFilter &Filter, SmallVectorImpl<ClangTidyCheck *> &Checks) {
Alexander Kornienkodf1e3cb2014-03-06 10:17:46 +000031 for (const auto &Factory : Factories) {
32 if (Filter.IsCheckEnabled(Factory.first)) {
33 ClangTidyCheck *Check = Factory.second->createCheck();
34 Check->setName(Factory.first);
Alexander Kornienko41bfe8d2014-01-13 10:50:51 +000035 Checks.push_back(Check);
36 }
Daniel Jasperd07c8402013-07-29 08:19:24 +000037 }
38}
39
40} // namespace tidy
41} // namespace clang