sammccall added a comment.

Thanks for the important fix.

This contains a mixture of changing comparison-of-paths to be case insensitive, 
and case-normalizing stored paths so we can use case-sensitive comparisons.

I think we should stick to *only* changing comparison-of-path logic as much as 
possible, because:

- both approaches are ad-hoc and error prone - forgetting to 
fold/insensitive-compare will introduce a bug
- it's more obvious where to fix a sensitive-compare, and it has fewer 
unexpected effects
- in many configs we only ever see one case for a given file, case-folding can 
introduce bugs here where insensitive-comparison cannot
- there's a risk we won't be case-preserving, which can be annoying or really 
matter (e.g. on a mac volume that *is* case sensitive)



================
Comment at: clang-tools-extra/clangd/ConfigCompile.cpp:202
 
+#if defined(_WIN32) || defined(__APPLE__)
+    // When matching paths via regex on Windows/Apple they should be treated
----------------
I'm starting to think Path.h should export a CLANGD_PATH_INSENSITIVE macro, 
this condition is in a bunch of places. (particularly tests)

I nearly did this last time and came to the conclusion it wasn't quite enough 
:-\


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96690/new/

https://reviews.llvm.org/D96690

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to