I'm sorry about the half-baked patch of mine. I initially noticed that the "hash-lookup.h" wasn't needed (which was a correct assumption), and then went overboard when trying to clean up the other includes. This is truly a rookie mistake that only wastes the time of everyone involved. This won't happen again! On 01.04.22 10:07, Ã?Æ?ââ?¬ var ArnfjÃ?Æ?Ã?¶rÃ?Æ?Ã?° Bjarmason wrote: > ... For anyone interested in pursuing this, I think using the excellent > include-what-you-use tool would be a nice start. > > We could even eventually add it to our CI if the false positive rate > isn't bad (I haven't checked much): > https://github.com/include-what-you-use/include-what-you-use This seems to be a really nice tool indeed. I wouldn't be comfortable adding it to the CI just yet, but it did make it considerably easier to spot includes that could safely be removed. I think we could try battle-testing this tool in the codebase to get a sense of how it behaves. To start, I added your reference-command to a script under "contrib/iwyu" and ran it against the files you noted. Before breaking a bulk of the files, I wanted to make sure that this undertaking is headed in the right direction. Feedback is of course welcomed! Garrit Franke (4): contrib: add iwyu script bisect.c: remove unnecessary include serve.c: remove unnecessary include apply.c: remove unnecessary include bisect.c | 1 - builtin/apply.c | 1 - contrib/iwyu/README | 33 +++++++++++++++++++++++++++++++++ contrib/iwyu/iwyu.sh | 2 ++ serve.c | 1 - 5 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 contrib/iwyu/README create mode 100755 contrib/iwyu/iwyu.sh -- 2.35.1