MyDeveloperDay added a comment. I guess I'm not making myself clear, I was just hoping you could be super explicit about what you are changing so anyone coming into this review would understand why the behaviour had changed (this is just pseudo code it may not be correct for all cases, but you should get the idea), We need to cover the `SBS_Empty`,`SBS_Always`,`SBS_Never` cases and the ShortLoops `true/false`
Add a normal for loop to the `verifyFormat` so we can see that `FOREACH` is being treated exactly the same as as a `for(;;)` loop FormatStyle Style = getLLVMStyle(); // given that LLVM style is... // AllowShortBlocksOnASingleLine = FormatStyle::SBS_Never; // AllowShortLoopsOnASingleLine = false; // This test ensures that foreach blocks are treated exactly the same as their for(;;) counterparts. EXPECT_EQ(Style.AllowShortBlocksOnASingleLine,FormatStyle::SBS_Never) EXPECT_EQ(Style.AllowShortLoopsOnASingleLine ,true) verifyFormat("void f() {\n" " for(int i=0;i<10;i++) {\n}\n" " foreach (Item *item, itemlist) {\n}\n" " Q_FOREACH (Item *item, itemlist) {\n}\n" " BOOST_FOREACH (Item *item, itemlist) {\n}\n" " UNKNOWN_FORACH(Item * item, itemlist) {\n}\n" "}",Style); verifyFormat("void f() {\n" " for(int i=0;i<10;i++) {\n std::cout << "loop"; }\n" " foreach (Item *item, itemlist) {\n std::cout << "loop"; }\n" " Q_FOREACH (Item *item, itemlist) {\n std::cout << "loop";}\n" " BOOST_FOREACH (Item *item, itemlist) {\n std::cout << "loop";}\n" " UNKNOWN_FORACH(Item * item, itemlist) {\n std::cout << "loop";}\n" "}",Style); verifyFormat("void f() {\n" " for(int i=0;i<10;i++)\n std::cout << "loop";\n" " foreach (Item *item, itemlist)\n std::cout << "loop"; \n" " Q_FOREACH (Item *item, itemlist)\n std::cout << "loop";\n" " BOOST_FOREACH (Item *item, itemlist)\n std::cout << "loop";\n" " UNKNOWN_FORACH(Item * item, itemlist)\n std::cout << "loop";\n" "}",Style); Style.AllowShortBlocksOnASingleLine = FormatStyle::SBS_Always; Style.AllowShortLoopsOnASingleLine = false; verifyFormat("void f() {\n" " for(int i=0;i<10;i++) {}\n" " foreach (Item *item, itemlist) {}\n" " Q_FOREACH (Item *item, itemlist) {}\n" " BOOST_FOREACH (Item *item, itemlist) {}\n" " UNKNOWN_FORACH(Item * item, itemlist) {}\n" "}",Style); verifyFormat("void f() {\n" " for(int i=0;i<10;i++) {std::cout << "Loop";}\n" " foreach (Item *item, itemlist) { std::cout << "Loop";}\n" " Q_FOREACH (Item *item, itemlist) { std::cout << "Loop";}\n" " BOOST_FOREACH (Item *item, itemlist) { std::cout << "Loop";}\n" " UNKNOWN_FORACH(Item * item, itemlist) { std::cout << "Loop";}\n" "}",Style); verifyFormat("void f() {\n" " for(int i=0;i<10;i++) std::cout << "Loop";\n" " foreach (Item *item, itemlist) std::cout << "Loop";\n" " Q_FOREACH (Item *item, itemlist) std::cout << "Loop";\n" " BOOST_FOREACH (Item *item, itemlist) std::cout << "Loop";\n" " UNKNOWN_FORACH(Item * item, itemlist) std::cout << "Loop";\n" "}",Style); Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D94955/new/ https://reviews.llvm.org/D94955 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits