kadircet added inline comments.

================
Comment at: clang/lib/Tooling/Inclusions/HeaderIncludes.cpp:338
     int Priority = Categories.getIncludePriority(
-        CurInclude.Name, /*CheckMainHeader=*/FirstIncludeOffset < 0);
+        CurInclude.Name, /*CheckMainHeader=*/true);
     CategoryEndOffsets[Priority] = NextLineOffset;
----------------
instead of doing this unconditionally, can we do this until we find first 
include that looks like the main include? similarly we should also only look 
for main includes during `::insert` if we didn't encounter one already during 
initial scan.

this ensures we give users a way out (in certain cases) when there are multiple 
alternatives, by respecting the order they have. it's also aligned with the 
behaviour of `sortCppIncludes`, which is used when formatting files elsewhere.


================
Comment at: clang/unittests/Tooling/HeaderIncludesTest.cpp:146
 
+TEST_F(HeaderIncludesTest, InsertMainHeader) {
+  std::string Code = R"cpp(#include "a.h")cpp";
----------------
can you also have test cases with competing includes, eg:

foo.cc, with contents:
```
#include "zoo/foo.h"
// insert "xoo/foo.h"
```
-> xoo/foo.h doesn't become main include


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D154963

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to