Plumbing for a Virtual File System

Adds the -vfsoverlay frontend option that enables the user to pass
VFS overlay YAML files to Swift. These files define a (potentially
many-layered) virtual mapping on which we predicate a VFS.

Switch all input-based memory buffer reads in the Frontend to the new
FileSystem-based approach.
This commit is contained in:
Robert Widmann
2018-07-28 01:21:17 -04:00
parent 2dfa303975
commit 0e58b7fd14
22 changed files with 234 additions and 13 deletions

View File

@@ -42,7 +42,7 @@ static FileOrError findModule(ASTContext &ctx, StringRef moduleID,
llvm::sys::path::append(inputFilename, moduleID);
inputFilename.append(".swift");
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> FileBufOrErr =
llvm::MemoryBuffer::getFile(inputFilename.str());
ctx.SourceMgr.getFileSystem()->getBufferForFile(inputFilename.str());
// Return if we loaded a file
if (FileBufOrErr)