//===--- ExternalSemaSource.h - External Sema Interface ---------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file defines the ExternalSemaSource interface. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_SEMA_EXTERNALSEMASOURCE_H #define LLVM_CLANG_SEMA_EXTERNALSEMASOURCE_H #include "clang/AST/ExternalASTSource.h" #include "clang/AST/Type.h" #include "clang/Sema/TypoCorrection.h" #include "clang/Sema/Weak.h" #include "llvm/ADT/MapVector.h" #include <utility> namespace llvm { template <class T, unsigned n> class SmallSetVector; } namespace clang { class CXXConstructorDecl; class CXXRecordDecl; class DeclaratorDecl; class LookupResult; class Scope; class Sema; class TypedefNameDecl; class ValueDecl; class VarDecl; struct LateParsedTemplate; /// A simple structure that captures a vtable use for the purposes of /// the \c ExternalSemaSource. struct ExternalVTableUse { … }; /// An abstract interface that should be implemented by /// external AST sources that also provide information for semantic /// analysis. class ExternalSemaSource : public ExternalASTSource { … }; } // end namespace clang #endif