brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · e33d0f2 Raw
48 lines · c
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#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_NOLINTDIRECTIVEHANDLER_H10#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_NOLINTDIRECTIVEHANDLER_H11 12#include "clang/Basic/Diagnostic.h"13#include "llvm/ADT/StringRef.h"14#include <memory>15 16namespace clang::tooling {17struct Diagnostic;18} // namespace clang::tooling19 20namespace llvm {21template <typename T> class SmallVectorImpl;22} // namespace llvm23 24namespace clang::tidy {25 26/// This class is used to locate NOLINT comments in the file being analyzed, to27/// decide whether a diagnostic should be suppressed.28/// This class keeps a cache of every NOLINT comment found so that files do not29/// have to be repeatedly parsed each time a new diagnostic is raised.30class NoLintDirectiveHandler {31public:32  NoLintDirectiveHandler();33  ~NoLintDirectiveHandler();34 35  bool shouldSuppress(DiagnosticsEngine::Level DiagLevel,36                      const Diagnostic &Diag, llvm::StringRef DiagName,37                      llvm::SmallVectorImpl<tooling::Diagnostic> &NoLintErrors,38                      bool AllowIO, bool EnableNoLintBlocks);39 40private:41  class Impl;42  std::unique_ptr<Impl> PImpl;43};44 45} // namespace clang::tidy46 47#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_NOLINTDIRECTIVEHANDLER_H48