sammccall added a comment.

(sorry i thought i sent these comments earlier)

This is a change to clang rather than clangd, so it affects the behavior of the 
compiler and other clang-based tools.
While it might do something useful in clangd, I'm skeptical of its general 
applicability because with this extension we do not expect that such files will 
be parseable.

I think the evidence you've found is that editors (e.g. clangd!) should handle 
these files, but not necessarily compilers.

> one has to add #include "header.hpp" at the top of .inl files to make it work 
> but thats not a big deal.

It may not be a big burden to add it to code that you own, but making the 
compiler misinterpret other people's code where this #include isn't present can 
be a problem.

I think ideally we'd express this behavior at the clangd level instead. 
Something like "we suspect this file contains $LANGUAGE, so if the compile 
flags/extension don't imply anything particular, treat it that way".
As well as being less intrusive, this is a more general, useful feature:

- LSP allows the editor to specify the language, typically based in editor UI, 
so this would give the user control over whether such files were treated as 
C/C++/ObjC/ObjC++ etc rather than hard-coding C++. (We can still have a 
default).
- this needn't be specific to suffix ".inl". LLVM uses ".inc", I'm sure other 
codebases use other extensions.

(And the reason i never sent the comment is i couldn't come to a conclusion on 
the best way to do this inside clangd. Needs some more thought...)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D67025

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

Reply via email to