<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Kim,<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 10, 2017, at 7:39 AM, Kim Gräsman <<a href="mailto:kim.grasman@gmail.com" class="">kim.grasman@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi Michael,<br class=""><br class="">On Thu, Dec 7, 2017 at 3:16 AM, Michael Zolotukhin<br class=""><<a href="mailto:mzolotukhin@apple.com" class="">mzolotukhin@apple.com</a>> wrote:<br class=""><blockquote type="cite" class=""><br class="">Nice to IWYU developers here:) I wonder how hard it would be to run IWYU on<br class="">LLVM/Clang (or, if it’s supposed to work, I wonder what I did wrong).<br class=""></blockquote><br class="">There are known problems with running IWYU over LLVM/Clang -- Zachary<br class="">Turner made an attempt a while back to get it up and running. Since<br class="">the LLVM tree uses all sorts of modern and moderately complex<br class="">patterns, we're struggling to keep up.<br class=""></div></div></blockquote>I see.<br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class=""><blockquote type="cite" class="">If we also can tweak it a bit to make it choose more human-like (~more<br class="">conservative) decisions, we would be able to just apply what it suggests!<br class=""></blockquote><br class="">Different humans appear to have different preferences :)<br class=""></div></div></blockquote>True, what I meant hear is to make the changes more conservative: e.g. if we can replace</div><div><font face="Menlo" class="">#include "MyClass.h"</font></div><div>with </div><div><font face="Menlo" class="">class MyClass;</font></div><div>then this change is probably desirable in every way: it documents the code better, it decreases coupling, it improves compile time.</div><div><br class=""></div><div>But if for instance we suggest replacing it with</div><div><font face="Menlo" class="">#include "BaseClass1.h"           // previously included from MyClass.h</font></div><div><font face="Menlo" class="">#include "ExtraStuffForMyClass.h"</font></div><div>then it's less straight-forward, at least from the code-selfdocumentation point of view.</div><div><br class=""></div><div>If we could make IWYU to only suggest changes of the first type, then we probably could've just blindly apply all the suggested changes.</div><div><br class=""></div><div><blockquote type="cite" class=""><div class=""><div class=""><br class="">It'd be great to hear more about specifics, maybe you can bring them<br class="">up on the IWYU list:<br class=""><a href="https://groups.google.com/forum/#!forum/include-what-you-use?" class="">https://groups.google.com/forum/#!forum/include-what-you-use?</a><br class=""></div></div></blockquote>Will do, thanks.</div><div><br class=""></div><div>Michael<br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class="">Some of IWYU's controversial changes are by design, but some are just<br class="">bugs, and if you have ideas for a more principled design, we<br class="">appreciate all the input we can get.<br class=""><br class="">Thanks,<br class="">- Kim<br class=""></div></div></blockquote></div><br class=""></div></body></html>