"}");
FormatStyle AllowsMergedIf = getLLVMStyle();
+ AllowsMergedIf.IfMacros.push_back("MYIF");
AllowsMergedIf.AlignEscapedNewlines = FormatStyle::ENAS_Left;
AllowsMergedIf.AllowShortIfStatementsOnASingleLine =
FormatStyle::SIS_WithoutElse;
" f();\n"
"}",
AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " // comment\n"
+ " f();",
+ AllowsMergedIf);
+ verifyFormat("{\n"
+ " MYIF (a)\n"
+ " label:\n"
+ " f();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("#define A \\\n"
+ " MYIF (a) \\\n"
+ " label: \\\n"
+ " f()",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " ;",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " MYIF (b) return;",
+ AllowsMergedIf);
+
+ verifyFormat("MYIF (a) // Can't merge this\n"
+ " f();\n",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) /* still don't merge */\n"
+ " f();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) { // Never merge this\n"
+ " f();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) { /* Never merge this */\n"
+ " f();\n"
+ "}",
+ AllowsMergedIf);
AllowsMergedIf.ColumnLimit = 14;
+ // Where line-lengths matter, a 2-letter synonym that maintains line length.
+ // Not IF to avoid any confusion that IF is somehow special.
+ AllowsMergedIf.IfMacros.push_back("FI");
verifyFormat("if (a) return;", AllowsMergedIf);
verifyFormat("if (aaaaaaaaa)\n"
" return;",
AllowsMergedIf);
+ verifyFormat("FI (a) return;", AllowsMergedIf);
+ verifyFormat("FI (aaaaaaaaa)\n"
+ " return;",
+ AllowsMergedIf);
AllowsMergedIf.ColumnLimit = 13;
verifyFormat("if (a)\n return;", AllowsMergedIf);
+ verifyFormat("FI (a)\n return;", AllowsMergedIf);
FormatStyle AllowsMergedIfElse = getLLVMStyle();
+ AllowsMergedIfElse.IfMacros.push_back("MYIF");
AllowsMergedIfElse.AllowShortIfStatementsOnASingleLine =
FormatStyle::SIS_AllIfsAndElse;
verifyFormat("if (a)\n"
" else if constexpr (c) return;\n"
" else return;",
AllowsMergedIfElse);
+ verifyFormat("MYIF (a)\n"
+ " // comment\n"
+ " f();\n"
+ "else\n"
+ " // comment\n"
+ " f();",
+ AllowsMergedIfElse);
+ verifyFormat("{\n"
+ " MYIF (a)\n"
+ " label:\n"
+ " f();\n"
+ " else\n"
+ " label:\n"
+ " f();\n"
+ "}",
+ AllowsMergedIfElse);
+ verifyFormat("MYIF (a)\n"
+ " ;\n"
+ "else\n"
+ " ;",
+ AllowsMergedIfElse);
+ verifyFormat("MYIF (a) {\n"
+ "} else {\n"
+ "}",
+ AllowsMergedIfElse);
+ verifyFormat("MYIF (a) return;\n"
+ "else MYIF (b) return;\n"
+ "else return;",
+ AllowsMergedIfElse);
+ verifyFormat("MYIF (a) {\n"
+ "} else return;",
+ AllowsMergedIfElse);
+ verifyFormat("MYIF (a) {\n"
+ "} else MYIF (b) return;\n"
+ "else return;",
+ AllowsMergedIfElse);
+ verifyFormat("MYIF (a) return;\n"
+ "else MYIF (b) {\n"
+ "} else return;",
+ AllowsMergedIfElse);
+ verifyFormat("MYIF (a)\n"
+ " MYIF (b) return;\n"
+ " else return;",
+ AllowsMergedIfElse);
+ verifyFormat("MYIF constexpr (a)\n"
+ " MYIF constexpr (b) return;\n"
+ " else MYIF constexpr (c) return;\n"
+ " else return;",
+ AllowsMergedIfElse);
}
TEST_F(FormatTest, FormatIfWithoutCompoundStatementButElseWith) {
FormatStyle AllowsMergedIf = getLLVMStyle();
+ AllowsMergedIf.IfMacros.push_back("MYIF");
AllowsMergedIf.AlignEscapedNewlines = FormatStyle::ENAS_Left;
AllowsMergedIf.AllowShortIfStatementsOnASingleLine =
FormatStyle::SIS_WithoutElse;
" g();\n"
"}",
AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " f();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " f();\n"
+ "else\n"
+ " g();\n",
+ AllowsMergedIf);
+
+ verifyFormat("MYIF (a) g();", AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g()\n"
+ "};",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else MYIF (b)\n"
+ " g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else if (b)\n"
+ " g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else MYIF (b)\n"
+ " g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else if (b)\n"
+ " g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else MYIF (b) {\n"
+ " g();\n"
+ "} else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else if (b) {\n"
+ " g();\n"
+ "} else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else MYIF (b)\n"
+ " g();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else if (b)\n"
+ " g();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else MYIF (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a)\n"
+ " g();\n"
+ "else if (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else MYIF (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else if (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
AllowsMergedIf.AllowShortIfStatementsOnASingleLine =
FormatStyle::SIS_OnlyFirstIf;
" g();\n"
"}",
AllowsMergedIf);
+ verifyFormat("MYIF (a) f();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) f();\n"
+ "else {\n"
+ " if (a) f();\n"
+ " else {\n"
+ " g();\n"
+ " }\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+
+ verifyFormat("MYIF (a) g();", AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g()\n"
+ "};",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else MYIF (b)\n"
+ " g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else if (b)\n"
+ " g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else MYIF (b)\n"
+ " g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else if (b)\n"
+ " g();\n"
+ "else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else MYIF (b) {\n"
+ " g();\n"
+ "} else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else if (b) {\n"
+ " g();\n"
+ "} else\n"
+ " g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else MYIF (b)\n"
+ " g();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else if (b)\n"
+ " g();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else MYIF (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else if (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else MYIF (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else if (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
AllowsMergedIf.AllowShortIfStatementsOnASingleLine =
FormatStyle::SIS_AllIfsAndElse;
" g();\n"
"}",
AllowsMergedIf);
+ verifyFormat("MYIF (a) f();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) f();\n"
+ "else {\n"
+ " if (a) f();\n"
+ " else {\n"
+ " g();\n"
+ " }\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+
+ verifyFormat("MYIF (a) g();", AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g()\n"
+ "};",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else MYIF (b) g();\n"
+ "else g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else if (b) g();\n"
+ "else g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else MYIF (b) g();\n"
+ "else g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else if (b) g();\n"
+ "else g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else MYIF (b) {\n"
+ " g();\n"
+ "} else g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else if (b) {\n"
+ " g();\n"
+ "} else g();",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else MYIF (b) g();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else if (b) g();\n"
+ "else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else MYIF (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) g();\n"
+ "else if (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else MYIF (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
+ verifyFormat("MYIF (a) {\n"
+ " g();\n"
+ "} else if (b) {\n"
+ " g();\n"
+ "} else {\n"
+ " g();\n"
+ "}",
+ AllowsMergedIf);
}
TEST_F(FormatTest, FormatLoopsWithoutCompoundStatement) {
TEST_F(FormatTest, FormatShortBracedStatements) {
FormatStyle AllowSimpleBracedStatements = getLLVMStyle();
+ AllowSimpleBracedStatements.IfMacros.push_back("MYIF");
+ // Where line-lengths matter, a 2-letter synonym that maintains line length.
+ // Not IF to avoid any confusion that IF is somehow special.
+ AllowSimpleBracedStatements.IfMacros.push_back("FI");
AllowSimpleBracedStatements.ColumnLimit = 40;
AllowSimpleBracedStatements.AllowShortBlocksOnASingleLine =
FormatStyle::SBS_Always;
verifyFormat("if (true) {}", AllowSimpleBracedStatements);
verifyFormat("if constexpr (true) {}", AllowSimpleBracedStatements);
verifyFormat("if CONSTEXPR (true) {}", AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {}", AllowSimpleBracedStatements);
+ verifyFormat("MYIF constexpr (true) {}", AllowSimpleBracedStatements);
+ verifyFormat("MYIF CONSTEXPR (true) {}", AllowSimpleBracedStatements);
verifyFormat("while (true) {}", AllowSimpleBracedStatements);
verifyFormat("for (;;) {}", AllowSimpleBracedStatements);
verifyFormat("if (true) { f(); }", AllowSimpleBracedStatements);
verifyFormat("if constexpr (true) { f(); }", AllowSimpleBracedStatements);
verifyFormat("if CONSTEXPR (true) { f(); }", AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) { f(); }", AllowSimpleBracedStatements);
+ verifyFormat("MYIF constexpr (true) { f(); }", AllowSimpleBracedStatements);
+ verifyFormat("MYIF CONSTEXPR (true) { f(); }", AllowSimpleBracedStatements);
verifyFormat("while (true) { f(); }", AllowSimpleBracedStatements);
verifyFormat("for (;;) { f(); }", AllowSimpleBracedStatements);
verifyFormat("if (true) { fffffffffffffffffffffff(); }",
" f();\n"
"}",
AllowSimpleBracedStatements);
+ verifyFormat("FI (true) { fffffffffffffffffffffff(); }",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {\n"
+ " ffffffffffffffffffffffff();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {\n"
+ " ffffffffffffffffffffffffffffffffffffffffffffffffffffff();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) { //\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {\n"
+ " f();\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {\n"
+ " f();\n"
+ "} else {\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
verifyFormat("struct A2 {\n"
" int X;\n"
" f();\n"
"}",
AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {}", AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {\n"
+ " f();\n"
+ "} else {\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
AllowSimpleBracedStatements.AllowShortLoopsOnASingleLine = false;
verifyFormat("while (true) {}", AllowSimpleBracedStatements);
verifyFormat("if (true) {}", AllowSimpleBracedStatements);
verifyFormat("if constexpr (true) {}", AllowSimpleBracedStatements);
verifyFormat("if CONSTEXPR (true) {}", AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {}", AllowSimpleBracedStatements);
+ verifyFormat("MYIF constexpr (true) {}", AllowSimpleBracedStatements);
+ verifyFormat("MYIF CONSTEXPR (true) {}", AllowSimpleBracedStatements);
verifyFormat("while (true) {}", AllowSimpleBracedStatements);
verifyFormat("for (;;) {}", AllowSimpleBracedStatements);
verifyFormat("if (true) { f(); }", AllowSimpleBracedStatements);
verifyFormat("if constexpr (true) { f(); }", AllowSimpleBracedStatements);
verifyFormat("if CONSTEXPR (true) { f(); }", AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) { f(); }", AllowSimpleBracedStatements);
+ verifyFormat("MYIF constexpr (true) { f(); }", AllowSimpleBracedStatements);
+ verifyFormat("MYIF CONSTEXPR (true) { f(); }", AllowSimpleBracedStatements);
verifyFormat("while (true) { f(); }", AllowSimpleBracedStatements);
verifyFormat("for (;;) { f(); }", AllowSimpleBracedStatements);
verifyFormat("if (true) { fffffffffffffffffffffff(); }",
" f();\n"
"}",
AllowSimpleBracedStatements);
+ verifyFormat("FI (true) { fffffffffffffffffffffff(); }",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true)\n"
+ "{\n"
+ " ffffffffffffffffffffffff();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true)\n"
+ "{\n"
+ " ffffffffffffffffffffffffffffffffffffffffffffffffffffff();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true)\n"
+ "{ //\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true)\n"
+ "{\n"
+ " f();\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true)\n"
+ "{\n"
+ " f();\n"
+ "} else\n"
+ "{\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
AllowSimpleBracedStatements.AllowShortIfStatementsOnASingleLine =
FormatStyle::SIS_Never;
" f();\n"
"}",
AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true) {}", AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true)\n"
+ "{\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
+ verifyFormat("MYIF (true)\n"
+ "{\n"
+ " f();\n"
+ "} else\n"
+ "{\n"
+ " f();\n"
+ "}",
+ AllowSimpleBracedStatements);
AllowSimpleBracedStatements.AllowShortLoopsOnASingleLine = false;
verifyFormat("while (true) {}", AllowSimpleBracedStatements);
FormatStyle Style = getLLVMStyle();
Style.SpaceBeforeParens =
- FormatStyle::SBPO_ControlStatementsExceptForEachMacros;
+ FormatStyle::SBPO_ControlStatementsExceptControlMacros;
verifyFormat("void f() {\n"
" foreach(Item *item, itemlist) {}\n"
" Q_FOREACH(Item *item, itemlist) {}\n"
FormatStyle::SBPO_Always);
CHECK_PARSE("SpaceBeforeParens: ControlStatements", SpaceBeforeParens,
FormatStyle::SBPO_ControlStatements);
+ CHECK_PARSE("SpaceBeforeParens: ControlStatementsExceptControlMacros",
+ SpaceBeforeParens,
+ FormatStyle::SBPO_ControlStatementsExceptControlMacros);
CHECK_PARSE("SpaceBeforeParens: NonEmptyParentheses", SpaceBeforeParens,
FormatStyle::SBPO_NonEmptyParentheses);
// For backward compatibility:
FormatStyle::SBPO_Never);
CHECK_PARSE("SpaceAfterControlStatementKeyword: true", SpaceBeforeParens,
FormatStyle::SBPO_ControlStatements);
+ CHECK_PARSE("SpaceBeforeParens: ControlStatementsExceptForEachMacros",
+ SpaceBeforeParens,
+ FormatStyle::SBPO_ControlStatementsExceptControlMacros);
Style.ColumnLimit = 123;
FormatStyle BaseStyle = getLLVMStyle();
CHECK_PARSE("ForEachMacros: [BOOST_FOREACH, Q_FOREACH]", ForEachMacros,
BoostAndQForeach);
+ Style.IfMacros.clear();
+ std::vector<std::string> CustomIfs;
+ CustomIfs.push_back("MYIF");
+ CHECK_PARSE("IfMacros: [MYIF]", IfMacros, CustomIfs);
+
Style.AttributeMacros.clear();
CHECK_PARSE("BasedOnStyle: LLVM", AttributeMacros,
std::vector<std::string>{"__capability"});
TEST_F(FormatTest, SpacesInConditionalStatement) {
FormatStyle Spaces = getLLVMStyle();
+ Spaces.IfMacros.clear();
+ Spaces.IfMacros.push_back("MYIF");
Spaces.SpacesInConditionalStatement = true;
verifyFormat("for ( int i = 0; i; i++ )\n continue;", Spaces);
verifyFormat("if ( !a )\n return;", Spaces);
verifyFormat("if ( a )\n return;", Spaces);
verifyFormat("if constexpr ( a )\n return;", Spaces);
+ verifyFormat("MYIF ( a )\n return;", Spaces);
+ verifyFormat("MYIF ( a )\n return;\nelse MYIF ( b )\n return;", Spaces);
+ verifyFormat("MYIF ( a )\n return;\nelse\n return;", Spaces);
verifyFormat("switch ( a )\ncase 1:\n return;", Spaces);
verifyFormat("while ( a )\n return;", Spaces);
verifyFormat("while ( (a && b) )\n return;", Spaces);
// Check that space on the left of "::" is inserted as expected at beginning
// of condition.
verifyFormat("while ( ::func() )\n return;", Spaces);
+
+ // Check impact of ControlStatementsExceptControlMacros is honored.
+ Spaces.SpaceBeforeParens =
+ FormatStyle::SBPO_ControlStatementsExceptControlMacros;
+ verifyFormat("MYIF( a )\n return;", Spaces);
+ verifyFormat("MYIF( a )\n return;\nelse MYIF( b )\n return;", Spaces);
+ verifyFormat("MYIF( a )\n return;\nelse\n return;", Spaces);
}
TEST_F(FormatTest, AlternativeOperators) {