brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 4fb4144 Raw
52 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8///9///  \file Implements classes required to build clang-tidy modules.10///11//===----------------------------------------------------------------------===//12 13#include "ClangTidyModule.h"14#include "ClangTidyCheck.h"15 16namespace clang::tidy {17 18void ClangTidyCheckFactories::registerCheckFactory(StringRef Name,19                                                   CheckFactory Factory) {20  Factories.insert_or_assign(Name, std::move(Factory));21}22 23std::vector<std::unique_ptr<ClangTidyCheck>>24ClangTidyCheckFactories::createChecks(ClangTidyContext *Context) const {25  std::vector<std::unique_ptr<ClangTidyCheck>> Checks;26  for (const auto &Factory : Factories) {27    if (Context->isCheckEnabled(Factory.getKey()))28      Checks.emplace_back(Factory.getValue()(Factory.getKey(), Context));29  }30  return Checks;31}32 33std::vector<std::unique_ptr<ClangTidyCheck>>34ClangTidyCheckFactories::createChecksForLanguage(35    ClangTidyContext *Context) const {36  std::vector<std::unique_ptr<ClangTidyCheck>> Checks;37  const LangOptions &LO = Context->getLangOpts();38  for (const auto &Factory : Factories) {39    if (!Context->isCheckEnabled(Factory.getKey()))40      continue;41    std::unique_ptr<ClangTidyCheck> Check =42        Factory.getValue()(Factory.getKey(), Context);43    if (Check->isLanguageVersionSupported(LO))44      Checks.push_back(std::move(Check));45  }46  return Checks;47}48 49ClangTidyOptions ClangTidyModule::getModuleOptions() { return {}; }50 51} // namespace clang::tidy52