jbcoe updated this revision to Diff 239574. jbcoe added a comment. Handle `using` case where SpaceBeforeParensOptions is set to SBPO_NonEmptyParentheses
CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72144/new/ https://reviews.llvm.org/D72144 Files: clang/lib/Format/TokenAnnotator.cpp clang/unittests/Format/FormatTestCSharp.cpp Index: clang/unittests/Format/FormatTestCSharp.cpp =================================================================== --- clang/unittests/Format/FormatTestCSharp.cpp +++ clang/unittests/Format/FormatTestCSharp.cpp @@ -249,6 +249,23 @@ verifyFormat("using(StreamWriter sw = new StreamWriter(filenameB)) {}", Style); + + Style.SpaceBeforeParens = FormatStyle::SBPO_ControlStatements; + verifyFormat("public void foo() {\n" + " using (StreamWriter sw = new StreamWriter(filenameA)) {}\n" + "}", + Style); + + verifyFormat("using (StreamWriter sw = new StreamWriter(filenameB)) {}", + Style); + + Style.SpaceBeforeParens = FormatStyle::SBPO_NonEmptyParentheses; + verifyFormat("public void foo() {\n" + " using (StreamWriter sw = new StreamWriter (filenameA)) {}\n" + "}", + Style); + + verifyFormat("using() {}", Style); } TEST_F(FormatTestCSharp, CSharpRegions) { Index: clang/lib/Format/TokenAnnotator.cpp =================================================================== --- clang/lib/Format/TokenAnnotator.cpp +++ clang/lib/Format/TokenAnnotator.cpp @@ -2869,7 +2869,8 @@ // space between keywords and paren e.g. "using (" if (Right.is(tok::l_paren)) if (Left.is(tok::kw_using)) - return spaceRequiredBeforeParens(Left); + return Style.SpaceBeforeParens == FormatStyle::SBPO_ControlStatements || + spaceRequiredBeforeParens(Right); } else if (Style.Language == FormatStyle::LK_JavaScript) { if (Left.is(TT_JsFatArrow)) return true;
Index: clang/unittests/Format/FormatTestCSharp.cpp =================================================================== --- clang/unittests/Format/FormatTestCSharp.cpp +++ clang/unittests/Format/FormatTestCSharp.cpp @@ -249,6 +249,23 @@ verifyFormat("using(StreamWriter sw = new StreamWriter(filenameB)) {}", Style); + + Style.SpaceBeforeParens = FormatStyle::SBPO_ControlStatements; + verifyFormat("public void foo() {\n" + " using (StreamWriter sw = new StreamWriter(filenameA)) {}\n" + "}", + Style); + + verifyFormat("using (StreamWriter sw = new StreamWriter(filenameB)) {}", + Style); + + Style.SpaceBeforeParens = FormatStyle::SBPO_NonEmptyParentheses; + verifyFormat("public void foo() {\n" + " using (StreamWriter sw = new StreamWriter (filenameA)) {}\n" + "}", + Style); + + verifyFormat("using() {}", Style); } TEST_F(FormatTestCSharp, CSharpRegions) { Index: clang/lib/Format/TokenAnnotator.cpp =================================================================== --- clang/lib/Format/TokenAnnotator.cpp +++ clang/lib/Format/TokenAnnotator.cpp @@ -2869,7 +2869,8 @@ // space between keywords and paren e.g. "using (" if (Right.is(tok::l_paren)) if (Left.is(tok::kw_using)) - return spaceRequiredBeforeParens(Left); + return Style.SpaceBeforeParens == FormatStyle::SBPO_ControlStatements || + spaceRequiredBeforeParens(Right); } else if (Style.Language == FormatStyle::LK_JavaScript) { if (Left.is(TT_JsFatArrow)) return true;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits