brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · b69f9d6 Raw
48 lines · c
1//===--- ToolRefactoringResultConsumer.h - ----------------------*- C++ -*-===//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_CLANG_REFACTOR_TOOL_REFACTORING_RESULT_CONSUMER_H10#define LLVM_CLANG_TOOLS_CLANG_REFACTOR_TOOL_REFACTORING_RESULT_CONSUMER_H11 12#include "clang/AST/ASTContext.h"13#include "clang/Tooling/Refactoring/RefactoringResultConsumer.h"14 15namespace clang {16namespace refactor {17 18/// An interface that subclasses the \c RefactoringResultConsumer interface19/// that stores the reference to the TU-specific diagnostics engine.20class ClangRefactorToolConsumerInterface21    : public tooling::RefactoringResultConsumer {22public:23  /// Called when a TU is entered.24  void beginTU(ASTContext &Context) {25    assert(!Diags && "Diags has been set");26    Diags = &Context.getDiagnostics();27  }28 29  /// Called when the tool is done with a TU.30  void endTU() {31    assert(Diags && "Diags unset");32    Diags = nullptr;33  }34 35  DiagnosticsEngine &getDiags() const {36    assert(Diags && "no diags");37    return *Diags;38  }39 40private:41  DiagnosticsEngine *Diags = nullptr;42};43 44} // end namespace refactor45} // end namespace clang46 47#endif // LLVM_CLANG_TOOLS_CLANG_REFACTOR_TOOL_REFACTORING_RESULT_CONSUMER_H48