blob: dc3a11d0d5452a8eb3e64e9b7dbc2dda70283c08 [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 Kornienkofb9e92b2013-12-19 19:57:05 +000020 for (FactoryMap::iterator I = Factories.begin(), E = Factories.end(); I != E;
21 ++I) {
Daniel Jasperd07c8402013-07-29 08:19:24 +000022 delete I->second;
23 }
24}
25void ClangTidyCheckFactories::addCheckFactory(StringRef Name,
26 CheckFactoryBase *Factory) {
27
28 Factories[Name] = Factory;
29}
30
31void ClangTidyCheckFactories::createChecks(
Alexander Kornienkofb9e92b2013-12-19 19:57:05 +000032 ChecksFilter &Filter, SmallVectorImpl<ClangTidyCheck *> &Checks) {
33 for (FactoryMap::iterator I = Factories.begin(), E = Factories.end(); I != E;
34 ++I) {
35 if (Filter.IsCheckEnabled(I->first))
Daniel Jasperd07c8402013-07-29 08:19:24 +000036 Checks.push_back(I->second->createCheck());
37 }
38}
39
40} // namespace tidy
41} // namespace clang