FWIW, this problem is caused by unified sources *and* precompiled headers.
Unified sources allow you to get away without #including all the files you need in a .cpp file, because some earlier file in the group has probably already included them for you.
This means that when you add a new file to the build, and the unified sources get shuffled around, you end up with a long list of build breakages, some platform-specific, that you can only fix by repeating EWS trials. Here's an example: https://bugs.webkit.org/show_bug.cgi?id=189223. That patch added on new file in Source/WebCore/rendering, which required unrelated #include changes in at least:
rendering/RenderBlockFlow.cpp: rendering/RenderFrame.cpp: rendering/RenderImage.cpp:
How can we solve this? Should we have an EWS that builds non-unified? Can we somehow have the style checker do #include enforcement?
I think the solution to eagerly fix unified vs non-unified missing #includes would be strictly more costly than the problem — since the problem is that you sometimes have to fix unified vs non-unified missing #includes. Geoff