amccarth marked 3 inline comments as done. amccarth added a comment. Friendly ping for any VFS experts to comment.
================ Comment at: llvm/include/llvm/Support/VirtualFileSystem.h:657 + // slashes to match backslashes (and vice versa). + bool pathComponentMatches(llvm::StringRef lhs, llvm::StringRef rhs) const { + if ((CaseSensitive ? lhs.equals(rhs) : lhs.equals_lower(rhs))) ---------------- rnk wrote: > IIUC, this method receives path components, which must not contain path > separators, or the root path component, `\` or `/`. Is there some way to > express that invariant? Maybe just comment like "A path component must not > contain path separators, unless it is the root component, which is > represented as a single path separator," or an assert with the same effect. I felt the assumption is implicit in "path component," but I've made the comment more explicit. Note that the slash/backslash checks are checking the entire string. I hope that reinforces the idea that these would be path roots. ================ Comment at: llvm/lib/Support/VirtualFileSystem.cpp:1666 // paths become globally default. if (Start->equals(".")) ++Start; ---------------- rnk wrote: > Unrelated, but I wonder if this needs to be `while` instead of `if` to handle > repeated `foo/./././bar`. I'm fairly certain I'll be looking into this further as I try to resolve the remaining VFS tests that don't run on Windows. I'd love to eliminate another #ifdef, but I want to keep this patch focused. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69958/new/ https://reviews.llvm.org/D69958 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits