sammccall added a comment.

In D112996#3105783 <https://reviews.llvm.org/D112996#3105783>, @ckandeler wrote:

>>> For framework builds, the directory would be "Headers", which also seems 
>>> safe.
>>
>> I agree extensionless headers in frameworks seem fine to show.
>> We already know which includepath entries are frameworks, so we can just use 
>> that info directly (see line 9674)
>
> These aren't technically framework includes, as in order to make prefix-less 
> headers work, the include path has to point directly into the Headers 
> directory.

I see. In that case we can detect this pattern in any framework by checking 
whether the directory contains ".framework/Headers", right? Headers itself 
doesn't seem specific enough.



================
Comment at: clang/lib/Sema/SemaCodeComplete.cpp:9654
+                Dirname == "Headers" ||
+                Dirname.startswith("Qt") || Dirname == "ActiveQt"))
             break;
----------------
can you extract this up near dirname, and give a name that explains the idea 
(e.g. `ExtensionlessHeaders`)


================
Comment at: clang/lib/Sema/SemaCodeComplete.cpp:9654
+                Dirname == "Headers" ||
+                Dirname.startswith("Qt") || Dirname == "ActiveQt"))
             break;
----------------
sammccall wrote:
> can you extract this up near dirname, and give a name that explains the idea 
> (e.g. `ExtensionlessHeaders`)
we've lost the condition that there's no extension, and now accept *any* 
extension (e.g. `.DS_Store`!)
Unless this is important I think we should keep that check.

And to keep the number of cases/paths low, I think it's fine to bundle system 
headers into the same bucket - really this is just for the C++ standard 
library, which does not have extensions.

So some logic like:

```
bool ExtensionlessHeaders = IsSystem || Dir.endswith(".framework/Headers") || 
Dirname.startswith("Qt");
...
case regular_file:
  bool IsHeader = Filename.endswith(...) || Filename.endswith(...) || 
(ExtensionlessHeaders && !Filename.contains('.'));
  if (!IsHeader) break;
```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D112996

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

Reply via email to