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

Reply via email to