[clang] 5f104a8 - [clang-format] Add space between method modifier and a tuple return type in C#
Jonathan Coe via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 10 06:01:03 PDT 2020
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 lukaszkrawczyk at 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) {
More information about the cfe-commits
mailing list