Factor getting the filesystem into a method with error handling

This commit is contained in:
Ben Langmuir
2019-06-24 12:15:59 -07:00
committed by Marc Rasi
parent be05eb8085
commit 78a7d95f07
12 changed files with 71 additions and 56 deletions

View File

@@ -219,19 +219,10 @@ void SwiftLangSupport::codeComplete(
SourceKit::CodeCompletionConsumer &SKConsumer, ArrayRef<const char *> Args,
Optional<VFSOptions> vfsOptions) {
auto fileSystem = llvm::vfs::getRealFileSystem();
if (vfsOptions) {
auto provider = getFileSystemProvider(vfsOptions->name);
if (!provider) {
return SKConsumer.failed("unknown virtual filesystem 'key.vfs.name'");
}
SmallString<0> error;
fileSystem = provider->getFileSystem(vfsOptions->arguments, error);
if (!fileSystem) {
return SKConsumer.failed(error);
}
}
std::string error;
auto fileSystem = getFileSystem(vfsOptions, error);
if (!fileSystem)
return SKConsumer.failed(error);
SwiftCodeCompletionConsumer SwiftConsumer([&](
MutableArrayRef<CodeCompletionResult *> Results,