[PATCH] D60815: [clangd] Recognize "don't include me directly" pattern, and suppress include insertion.

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 17 07:04:25 PDT 2019


sammccall marked 2 inline comments as done.
sammccall added inline comments.


================
Comment at: clangd/index/SymbolCollector.cpp:631
+
+bool SymbolCollector::isSelfContainedHeader(FileID FID) {
+  // The real computation (which will be memoized).
----------------
ioeric wrote:
> sammccall wrote:
> > this has been moved to a member so it can use the cache and the (non-threadsafe) regex, and its logic has obviously been changed.
> "self-contained header" doesn't sound accurate anymore. Maybe something like `isIncludable`?
Let me explain how I think about it, and then I'll change the name if you still don't think it fits.

What we're detecting here (usually) is that this header can't be included unless a certain symbol/state is defined first from the outside.
Whether that's for some direct technical reason (e.g. configuration is needed) or to enforce a coding style, the dependency on external preprocessor state means the header isn't self contained. (And the non-self-containedness is the reason we can't include it in arbitrary contexts) 


Repository:
  rCTE Clang Tools Extra

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

https://reviews.llvm.org/D60815





More information about the cfe-commits mailing list