[PATCH] D127184: [clangd] Add <bits/ranges_algo.h> to header map

Nathan Ridge via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 16 01:05:03 PDT 2022


nridge added a comment.

Thanks for taking the time to do a systematic review!

In D127184#3577165 <https://reviews.llvm.org/D127184#3577165>, @falbrechtskirchinger wrote:

> bits/mofunc_impl.h

I see this included from `bits/move_only_function.h`, so I think `<functional>` would make sense for it.

> bits/new_allocator.h

I see this included from `<experimental/memory_resource>`, we could add that. (There are a few more implementation headers in `experimental/bits` which are included by standard headers in `<experimental/...>` that we could consider adding.)

> bits/specfun.h

I see this included from `<cmath>`.

> I've seen `*.tcc` files being mapped and have identified the following missing files:
>
>   bits/regex.tcc
>   bits/regex_automaton.tcc
>   bits/regex_compiler.tcc
>   bits/regex_executor.tcc
>   bits/regex_scanner.tcc
>   bits/string_view.tcc
>
> Should these be added as well?

I think we can skip these as they only contain definitions, and code completion should choose the file containing the declaration.



================
Comment at: clang-tools-extra/clangd/index/CanonicalIncludes.cpp:197
       {"bits/basic_string.tcc", "<string>"},
+      {"bits/boost_concept_check.h", "<numeric>"},
       {"bits/char_traits.h", "<string>"},
----------------
The choice of `<numeric>` is pretty random here, as is already the case for `bits/concept_check.h`.

Given that these headers don't declare any standard symbols, only symbols which are pure libstdc++ implementation details, maybe we should just omit them from the list?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D127184



More information about the cfe-commits mailing list