Author: Ćukasz Krawczyk Date: 2020-08-10T14:00:33+01:00 New Revision: 5f104a809983aa3b90f75fb411a9c8472545d270
URL: https://github.com/llvm/llvm-project/commit/5f104a809983aa3b90f75fb411a9c8472545d270 DIFF: https://github.com/llvm/llvm-project/commit/5f104a809983aa3b90f75fb411a9c8472545d270.diff LOG: [clang-format] Add space between method modifier and a tuple return type in C# "public (string name, int age) methodTuple() {}" is now properly spaced Patch by lukaszkrawc...@google.com Reviewed By: jbcoe, krasimir Differential Revision: https://reviews.llvm.org/D85016 Added: Modified: clang/lib/Format/TokenAnnotator.cpp clang/unittests/Format/FormatTestCSharp.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 6cbaf8a30812..11acb597aa40 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -3115,6 +3115,16 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line, Keywords.kw_lock)) return Style.SpaceBeforeParens == FormatStyle::SBPO_ControlStatements || spaceRequiredBeforeParens(Right); + + // space between method modifier and opening parenthesis of a tuple return + // type + if (Left.isOneOf(tok::kw_public, tok::kw_private, tok::kw_protected, + tok::kw_virtual, tok::kw_extern, tok::kw_static, + Keywords.kw_internal, Keywords.kw_abstract, + Keywords.kw_sealed, Keywords.kw_override, + Keywords.kw_async, Keywords.kw_unsafe) && + Right.is(tok::l_paren)) + return true; } else if (Style.Language == FormatStyle::LK_JavaScript) { if (Left.is(TT_JsFatArrow)) return true; diff --git a/clang/unittests/Format/FormatTestCSharp.cpp b/clang/unittests/Format/FormatTestCSharp.cpp index a2c551e5c25e..ae4cdda1c845 100644 --- a/clang/unittests/Format/FormatTestCSharp.cpp +++ b/clang/unittests/Format/FormatTestCSharp.cpp @@ -777,6 +777,20 @@ foreach ((A a, B b) in someList) { verifyFormat(R"(private float[ , ] Values;)", Style); verifyFormat(R"(string dirPath = args?[ 0 ];)", Style); verifyFormat(R"(char[ ,, ] rawCharArray = MakeCharacterGrid();)", Style); + + // Method returning tuple + verifyFormat(R"(public (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(private (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(protected (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(virtual (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(extern (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(static (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(internal (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(abstract (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(sealed (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(override (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(async (string name, int age) methodTuple() {})", Style); + verifyFormat(R"(unsafe (string name, int age) methodTuple() {})", Style); } TEST_F(FormatTestCSharp, CSharpNullableTypes) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits