Index: clang/lib/Format/TokenAnnotator.cpp =================================================================== --- clang/lib/Format/TokenAnnotator.cpp +++ clang/lib/Format/TokenAnnotator.cpp @@ -2861,7 +2861,7 @@ // 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_Never; } 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,15 @@ 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); } TEST_F(FormatTestCSharp, CSharpRegions) {