[PATCH] D117937: [VFS] Add a "redirecting-with" field to overlays
Keith Smiley via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 28 12:09:59 PST 2022
keith accepted this revision.
keith added a comment.
This revision is now accepted and ready to land.
I'm definitely not a VFS expert, but I do think this is much nicer than trying to do the other workarounds with multiple VFSs that you described, I left some minor comments, I reviewed carefully but this logic was and is quite dense so I'm heavily relying on the test coverage.
================
Comment at: llvm/include/llvm/Support/VirtualFileSystem.h:575
+/// instead>
+/// 'redirecting-with': <string, one of 'fallthrough', 'fallback', or
+/// 'redirect-only', default='fallthrough'>
----------------
I think `redirecting-with` is fine, and I can't come up with something better
================
Comment at: llvm/lib/Support/VirtualFileSystem.cpp:1341
+ Iters.push_back(ExternalIter);
+ } else {
+ Iters.push_back(ExternalIter);
----------------
I know we can only get here if the redirection != redirectOnly, but I think it might be more readable if we had an explicit else if here with fallthrough, and then added an else with an unreachable to make it clear, and make sure if we ever move stuff around we revisit this ordering
================
Comment at: llvm/lib/Support/VirtualFileSystem.cpp:1455-1456
+ return RedirectingFileSystem::RedirectKind::RedirectOnly;
+ }
+ return None;
+ }
----------------
Should this case error because the set value was invalid / a typo? Maybe this bubbles up actually?
================
Comment at: llvm/lib/Support/VirtualFileSystem.cpp:1870
+ }
+ } else if (Key == "redirecting-with") {
+ if (auto Kind = parseRedirectKind(I.getValue())) {
----------------
Should we error in the case that both this key and `fallthrough` are present? Maybe that's too strict for backwards compat, but right now I guess `fallthrough` could overwrite this value depending on order?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D117937/new/
https://reviews.llvm.org/D117937
More information about the cfe-commits
mailing list