#ifndef LLVM_CLANG_BASIC_FILEENTRY_H
#define LLVM_CLANG_BASIC_FILEENTRY_H
#include "clang/Basic/CustomizableOptional.h"
#include "clang/Basic/DirectoryEntry.h"
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/ErrorOr.h"
#include "llvm/Support/FileSystem/UniqueID.h"
#include <optional>
#include <utility>
namespace llvm {
class MemoryBuffer;
namespace vfs {
class File;
}
}
namespace clang {
class FileEntryRef;
namespace optional_detail {
template <> class OptionalStorage<clang::FileEntryRef>;
}
class FileEntry;
class FileEntryRef { … };
static_assert …;
static_assert …;
OptionalFileEntryRef;
namespace optional_detail {
template <>
class OptionalStorage<clang::FileEntryRef>
: public clang::FileMgr::MapEntryOptionalStorage<clang::FileEntryRef> { … };
static_assert …;
static_assert …;
}
}
namespace llvm {
template <> struct DenseMapInfo<clang::FileEntryRef> { … };
}
namespace clang {
inline bool operator==(const FileEntry *LHS, const OptionalFileEntryRef &RHS) { … }
inline bool operator==(const OptionalFileEntryRef &LHS, const FileEntry *RHS) { … }
inline bool operator!=(const FileEntry *LHS, const OptionalFileEntryRef &RHS) { … }
inline bool operator!=(const OptionalFileEntryRef &LHS, const FileEntry *RHS) { … }
class FileEntry { … };
off_t FileEntryRef::getSize() const { … }
unsigned FileEntryRef::getUID() const { … }
const llvm::sys::fs::UniqueID &FileEntryRef::getUniqueID() const { … }
time_t FileEntryRef::getModificationTime() const { … }
bool FileEntryRef::isNamedPipe() const { … }
void FileEntryRef::closeFile() const { … }
}
#endif