Author: d0k Date: Fri Oct 9 08:28:13 2015 New Revision: 249832 URL: http://llvm.org/viewvc/llvm-project?rev=249832&view=rev Log: [VFS] Rename RedirectingFS internals to avoid collisions with public clang classes
Hopefully fixes the MSVC build. NFC intended. Modified: cfe/trunk/lib/Basic/VirtualFileSystem.cpp Modified: cfe/trunk/lib/Basic/VirtualFileSystem.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/VirtualFileSystem.cpp?rev=249832&r1=249831&r2=249832&view=diff ============================================================================== --- cfe/trunk/lib/Basic/VirtualFileSystem.cpp (original) +++ cfe/trunk/lib/Basic/VirtualFileSystem.cpp Fri Oct 9 08:28:13 2015 @@ -667,13 +667,14 @@ public: EntryKind getKind() const { return Kind; } }; -class DirectoryEntry : public Entry { +class RedirectingDirectoryEntry : public Entry { std::vector<std::unique_ptr<Entry>> Contents; Status S; public: - DirectoryEntry(StringRef Name, std::vector<std::unique_ptr<Entry>> Contents, - Status S) + RedirectingDirectoryEntry(StringRef Name, + std::vector<std::unique_ptr<Entry>> Contents, + Status S) : Entry(EK_Directory, Name), Contents(std::move(Contents)), S(std::move(S)) {} Status getStatus() { return S; } @@ -683,7 +684,7 @@ public: static bool classof(const Entry *E) { return E->getKind() == EK_Directory; } }; -class FileEntry : public Entry { +class RedirectingFileEntry : public Entry { public: enum NameKind { NK_NotSet, @@ -694,7 +695,8 @@ private: std::string ExternalContentsPath; NameKind UseName; public: - FileEntry(StringRef Name, StringRef ExternalContentsPath, NameKind UseName) + RedirectingFileEntry(StringRef Name, StringRef ExternalContentsPath, + NameKind UseName) : Entry(EK_File, Name), ExternalContentsPath(ExternalContentsPath), UseName(UseName) {} StringRef getExternalContentsPath() const { return ExternalContentsPath; } @@ -711,11 +713,13 @@ class RedirectingFileSystem; class VFSFromYamlDirIterImpl : public clang::vfs::detail::DirIterImpl { std::string Dir; RedirectingFileSystem &FS; - DirectoryEntry::iterator Current, End; + RedirectingDirectoryEntry::iterator Current, End; + public: VFSFromYamlDirIterImpl(const Twine &Path, RedirectingFileSystem &FS, - DirectoryEntry::iterator Begin, - DirectoryEntry::iterator End, std::error_code &EC); + RedirectingDirectoryEntry::iterator Begin, + RedirectingDirectoryEntry::iterator End, + std::error_code &EC); std::error_code increment() override; }; @@ -843,7 +847,7 @@ public: return directory_iterator(); } - DirectoryEntry *D = cast<DirectoryEntry>(*E); + auto *D = cast<RedirectingDirectoryEntry>(*E); return directory_iterator(std::make_shared<VFSFromYamlDirIterImpl>(Dir, *this, D->contents_begin(), D->contents_end(), EC)); } @@ -948,7 +952,7 @@ class RedirectingFileSystemParser { std::vector<std::unique_ptr<Entry>> EntryArrayContents; std::string ExternalContentsPath; std::string Name; - FileEntry::NameKind UseExternalName = FileEntry::NK_NotSet; + auto UseExternalName = RedirectingFileEntry::NK_NotSet; EntryKind Kind; for (yaml::MappingNode::iterator I = M->begin(), E = M->end(); I != E; @@ -1016,7 +1020,8 @@ class RedirectingFileSystemParser { bool Val; if (!parseScalarBool(I->getValue(), Val)) return nullptr; - UseExternalName = Val ? FileEntry::NK_External : FileEntry::NK_Virtual; + UseExternalName = Val ? RedirectingFileEntry::NK_External + : RedirectingFileEntry::NK_Virtual; } else { llvm_unreachable("key missing from Keys"); } @@ -1034,7 +1039,8 @@ class RedirectingFileSystemParser { return nullptr; // check invalid configuration - if (Kind == EK_Directory && UseExternalName != FileEntry::NK_NotSet) { + if (Kind == EK_Directory && + UseExternalName != RedirectingFileEntry::NK_NotSet) { error(N, "'use-external-name' is not supported for directories"); return nullptr; } @@ -1051,11 +1057,11 @@ class RedirectingFileSystemParser { std::unique_ptr<Entry> Result; switch (Kind) { case EK_File: - Result = llvm::make_unique<FileEntry>( + Result = llvm::make_unique<RedirectingFileEntry>( LastComponent, std::move(ExternalContentsPath), UseExternalName); break; case EK_Directory: - Result = llvm::make_unique<DirectoryEntry>( + Result = llvm::make_unique<RedirectingDirectoryEntry>( LastComponent, std::move(EntryArrayContents), Status("", getNextVirtualUniqueID(), sys::TimeValue::now(), 0, 0, 0, file_type::directory_file, sys::fs::all_all)); @@ -1072,7 +1078,7 @@ class RedirectingFileSystemParser { I != E; ++I) { std::vector<std::unique_ptr<Entry>> Entries; Entries.push_back(std::move(Result)); - Result = llvm::make_unique<DirectoryEntry>( + Result = llvm::make_unique<RedirectingDirectoryEntry>( *I, std::move(Entries), Status("", getNextVirtualUniqueID(), sys::TimeValue::now(), 0, 0, 0, file_type::directory_file, sys::fs::all_all)); @@ -1232,7 +1238,7 @@ RedirectingFileSystem::lookupPath(sys::p return From; } - DirectoryEntry *DE = dyn_cast<DirectoryEntry>(From); + auto *DE = dyn_cast<RedirectingDirectoryEntry>(From); if (!DE) return make_error_code(llvm::errc::not_a_directory); @@ -1248,7 +1254,7 @@ RedirectingFileSystem::lookupPath(sys::p ErrorOr<Status> RedirectingFileSystem::status(const Twine &Path, Entry *E) { assert(E != nullptr); std::string PathStr(Path.str()); - if (FileEntry *F = dyn_cast<FileEntry>(E)) { + if (auto *F = dyn_cast<RedirectingFileEntry>(E)) { ErrorOr<Status> S = ExternalFS->status(F->getExternalContentsPath()); assert(!S || S->getName() == F->getExternalContentsPath()); if (S && !F->useExternalName(UseExternalNames)) @@ -1257,7 +1263,7 @@ ErrorOr<Status> RedirectingFileSystem::s S->IsVFSMapped = true; return S; } else { // directory - DirectoryEntry *DE = cast<DirectoryEntry>(E); + auto *DE = cast<RedirectingDirectoryEntry>(E); return Status::copyWithNewName(DE->getStatus(), PathStr); } } @@ -1301,7 +1307,7 @@ RedirectingFileSystem::openFileForRead(c if (!E) return E.getError(); - FileEntry *F = dyn_cast<FileEntry>(*E); + auto *F = dyn_cast<RedirectingFileEntry>(*E); if (!F) // FIXME: errc::not_a_file? return make_error_code(llvm::errc::invalid_argument); @@ -1466,11 +1472,10 @@ void YAMLVFSWriter::write(llvm::raw_ostr JSONWriter(OS).write(Mappings, IsCaseSensitive); } -VFSFromYamlDirIterImpl::VFSFromYamlDirIterImpl(const Twine &_Path, - RedirectingFileSystem &FS, - DirectoryEntry::iterator Begin, - DirectoryEntry::iterator End, - std::error_code &EC) +VFSFromYamlDirIterImpl::VFSFromYamlDirIterImpl( + const Twine &_Path, RedirectingFileSystem &FS, + RedirectingDirectoryEntry::iterator Begin, + RedirectingDirectoryEntry::iterator End, std::error_code &EC) : Dir(_Path.str()), FS(FS), Current(Begin), End(End) { if (Current != End) { SmallString<128> PathStr(Dir); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits