[clang] [clang-format] Fix greatergreater (PR #122282)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 17 01:20:14 PST 2025
https://github.com/andergnet updated https://github.com/llvm/llvm-project/pull/122282
>From e2780f01d47518bb61a5c01c9ad4d9daddb5044a Mon Sep 17 00:00:00 2001
From: W123011 <ander.genua at worldline.com>
Date: Thu, 9 Jan 2025 15:04:26 +0100
Subject: [PATCH 1/6] Fix >> behavior on continuation intenter
---
clang/lib/Format/ContinuationIndenter.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp
index 554b55fa75c926..5e5c93e2a5286f 100644
--- a/clang/lib/Format/ContinuationIndenter.cpp
+++ b/clang/lib/Format/ContinuationIndenter.cpp
@@ -147,7 +147,8 @@ static bool startsNextOperand(const FormatToken &Current) {
// Returns \c true if \c Current is a binary operation that must break.
static bool mustBreakBinaryOperation(const FormatToken &Current,
const FormatStyle &Style) {
- return Style.BreakBinaryOperations != FormatStyle::BBO_Never &&
+ return Current.CanBreakBefore &&
+ Style.BreakBinaryOperations != FormatStyle::BBO_Never &&
(Style.BreakBeforeBinaryOperators == FormatStyle::BOS_None
? startsNextOperand
: isAlignableBinaryOperator)(Current);
>From 4a5a1368b8a2ae577cb6e142022b563a3c77d583 Mon Sep 17 00:00:00 2001
From: W123011 <ander.genua at worldline.com>
Date: Thu, 9 Jan 2025 15:47:08 +0100
Subject: [PATCH 2/6] Unit test
---
clang/unittests/Format/FormatTest.cpp | 72 +++++++++++++++------------
1 file changed, 41 insertions(+), 31 deletions(-)
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 4d48bcacddead8..c9cf03bff6acce 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -22301,16 +22301,16 @@ TEST_F(FormatTest, HandlesUTF8BOM) {
#if !defined(_MSC_VER)
TEST_F(FormatTest, CountsUTF8CharactersProperly) {
- verifyFormat("\"Однажды в студёную зимнюю пору...\"",
+ verifyFormat("\"Однажды в ѝтудёную зимнюю пору...\"",
getLLVMStyleWithColumns(35));
- verifyFormat("\"一 二 三 四 五 六 七 八 九 十\"",
+ verifyFormat("\"一 二 三 四 五 六 七 八 九 坝\"",
getLLVMStyleWithColumns(31));
- verifyFormat("// Однажды в студёную зимнюю пору...",
+ verifyFormat("// Однажды в ѝтудёную зимнюю пору...",
getLLVMStyleWithColumns(36));
- verifyFormat("// 一 二 三 四 五 六 七 八 九 十", getLLVMStyleWithColumns(32));
- verifyFormat("/* Однажды в студёную зимнюю пору... */",
+ verifyFormat("// 一 二 三 四 五 六 七 八 九 坝", getLLVMStyleWithColumns(32));
+ verifyFormat("/* Однажды в ѝтудёную зимнюю пору... */",
getLLVMStyleWithColumns(39));
- verifyFormat("/* 一 二 三 四 五 六 七 八 九 十 */",
+ verifyFormat("/* 一 二 三 四 五 六 七 八 九 坝 */",
getLLVMStyleWithColumns(35));
}
@@ -22329,18 +22329,18 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
format("\"aaaaaaaÄ\xc2\x8d\";", getLLVMStyleWithColumns(10)));
// FIXME: unstable test case
EXPECT_EQ("\"Однажды, в \"\n"
- "\"студёную \"\n"
+ "\"ѝтудёную \"\n"
"\"зимнюю \"\n"
"\"пору,\"",
- format("\"Однажды, в студёную зимнюю пору,\"",
+ format("\"Однажды, в ѝтудёную зимнюю пору,\"",
getLLVMStyleWithColumns(13)));
// FIXME: unstable test case
EXPECT_EQ(
"\"一 二 三 \"\n"
"\"四 五六 \"\n"
"\"七 八 九 \"\n"
- "\"十\"",
- format("\"一 二 三 四 五六 七 八 九 十\"", getLLVMStyleWithColumns(11)));
+ "\"坝\"",
+ format("\"一 二 三 四 五六 七 八 九 坝\"", getLLVMStyleWithColumns(11)));
// FIXME: unstable test case
EXPECT_EQ("\"一\t\"\n"
"\"二 \t\"\n"
@@ -22348,8 +22348,8 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
"\"五\t\"\n"
"\"六 \t\"\n"
"\"七 \"\n"
- "\"八九十\tqq\"",
- format("\"一\t二 \t三 四 五\t六 \t七 八九十\tqq\"",
+ "\"八九坝\tqq\"",
+ format("\"一\t二 \t三 四 五\t六 \t七 八九坝\tqq\"",
getLLVMStyleWithColumns(11)));
// UTF8 character in an escape sequence.
@@ -22362,44 +22362,44 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
TEST_F(FormatTest, HandlesDoubleWidthCharsInMultiLineStrings) {
verifyFormat("const char *sssss =\n"
" \"一二三四五六七八\\\n"
- " 九 十\";",
+ " 九 坝\";",
"const char *sssss = \"一二三四五六七八\\\n"
- " 九 十\";",
+ " 九 坝\";",
getLLVMStyleWithColumns(30));
}
TEST_F(FormatTest, SplitsUTF8LineComments) {
verifyFormat("// aaaaÄ\xc2\x8d", getLLVMStyleWithColumns(10));
- verifyFormat("// Я из лесу\n"
+ verifyFormat("// Я из леѝу\n"
"// вышел; был\n"
- "// сильный\n"
+ "// ѝильный\n"
"// мороз.",
- "// Я из лесу вышел; был сильный мороз.",
+ "// Я из леѝу вышел; был ѝильный мороз.",
getLLVMStyleWithColumns(13));
verifyFormat("// 一二三\n"
"// 四五六七\n"
"// 八 九\n"
- "// 十",
- "// 一二三 四五六七 八 九 十", getLLVMStyleWithColumns(9));
+ "// 坝",
+ "// 一二三 四五六七 八 九 坝", getLLVMStyleWithColumns(9));
}
TEST_F(FormatTest, SplitsUTF8BlockComments) {
- verifyFormat("/* Гляжу,\n"
- " * поднимается\n"
+ verifyFormat("/* Глѝжу,\n"
+ " * поднимаетѝѝ\n"
" * медленно в\n"
" * гору\n"
" * Лошадка,\n"
- " * везущая\n"
- " * хворосту\n"
+ " * везущаѝ\n"
+ " * хвороѝту\n"
" * воз. */",
- "/* Гляжу, поднимается медленно в гору\n"
- " * Лошадка, везущая хворосту воз. */",
+ "/* Глѝжу, поднимаетѝѝ медленно в гору\n"
+ " * Лошадка, везущаѝ хвороѝту воз. */",
getLLVMStyleWithColumns(13));
verifyFormat("/* 一二三\n"
" * 四五六七\n"
" * 八 九\n"
- " * 十 */",
- "/* 一二三 四五六七 八 九 十 */", getLLVMStyleWithColumns(9));
+ " * 坝 */",
+ "/* 一二三 四五六七 八 九 坝 */", getLLVMStyleWithColumns(9));
verifyFormat("/* 𝓣𝓮𝓼𝓽 𝔣𝔬𝔲𝔯\n"
" * 𝕓𝕪𝕥𝕖\n"
" * 𝖀𝕿𝕱-𝟠 */",
@@ -27908,9 +27908,9 @@ TEST_F(FormatTest, BreakAdjacentStringLiterals) {
TEST_F(FormatTest, AlignUTFCommentsAndStringLiterals) {
verifyFormat(
- "int rus; // А теперь комментарии, например, на русском, 2-байта\n"
- "int long_rus; // Верхний коммент еще не превысил границу в 80, однако\n"
- " // уже отодвинут. Перенос, при этом, отрабатывает верно");
+ "int rus; // Н теперь комментарии, например, на руѝѝком, 2-байта\n"
+ "int long_rus; // Верхний коммент еще не превыѝил границу в 80, однако\n"
+ " // уже отодвинут. Переноѝ, при ѝтом, отрабатывает верно");
auto Style = getLLVMStyle();
Style.ColumnLimit = 15;
@@ -27940,7 +27940,7 @@ TEST_F(FormatTest, AlignUTFCommentsAndStringLiterals) {
verifyFormat("Languages languages = {\n"
" Language{{'e', 'n'}, U\"Test English\" },\n"
" Language{{'l', 'v'}, U\"Test Latviešu\"},\n"
- " Language{{'r', 'u'}, U\"Test Русский\" },\n"
+ " Language{{'r', 'u'}, U\"Test Руѝѝкий\" },\n"
"};",
Style);
}
@@ -28188,6 +28188,16 @@ TEST_F(FormatTest, BreakBinaryOperations) {
" | byte_buffer[2] << 16\n"
" | byte_buffer[3] << 24;",
Style);
+
+ Style.BreakBinaryOperations = FormatStyle::BBO_OnePerLine;
+ // Check operator >> special case
+ verifyFormat("std::cout\n"
+ " << longOperand1\n"
+ " << longOperand2\n"
+ " << longOperand3\n"
+ " << longOperand4\n"
+ " << longOperand5;",
+ Style);
}
TEST_F(FormatTest, RemoveEmptyLinesInUnwrappedLines) {
>From 2ff7f97579a20d5d5f09e7dafd48c20e90b4dad5 Mon Sep 17 00:00:00 2001
From: W123011 <ander.genua at worldline.com>
Date: Thu, 9 Jan 2025 16:03:51 +0100
Subject: [PATCH 3/6] fix encoding issue
---
clang/unittests/Format/FormatTest.cpp | 62 +++++++++++++--------------
1 file changed, 31 insertions(+), 31 deletions(-)
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index c9cf03bff6acce..060899b6f6a247 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -22301,16 +22301,16 @@ TEST_F(FormatTest, HandlesUTF8BOM) {
#if !defined(_MSC_VER)
TEST_F(FormatTest, CountsUTF8CharactersProperly) {
- verifyFormat("\"Однажды в ѝтудёную зимнюю пору...\"",
+ verifyFormat("\"Однажды в студёную зимнюю пору...\"",
getLLVMStyleWithColumns(35));
- verifyFormat("\"一 二 三 四 五 六 七 八 九 坝\"",
+ verifyFormat("\"一 二 三 四 五 六 七 八 九 十\"",
getLLVMStyleWithColumns(31));
- verifyFormat("// Однажды в ѝтудёную зимнюю пору...",
+ verifyFormat("// Однажды в студёную зимнюю пору...",
getLLVMStyleWithColumns(36));
- verifyFormat("// 一 二 三 四 五 六 七 八 九 坝", getLLVMStyleWithColumns(32));
- verifyFormat("/* Однажды в ѝтудёную зимнюю пору... */",
+ verifyFormat("// 一 二 三 四 五 六 七 八 九 十", getLLVMStyleWithColumns(32));
+ verifyFormat("/* Однажды в студёную зимнюю пору... */",
getLLVMStyleWithColumns(39));
- verifyFormat("/* 一 二 三 四 五 六 七 八 九 坝 */",
+ verifyFormat("/* 一 二 三 四 五 六 七 八 九 十 */",
getLLVMStyleWithColumns(35));
}
@@ -22329,18 +22329,18 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
format("\"aaaaaaaÄ\xc2\x8d\";", getLLVMStyleWithColumns(10)));
// FIXME: unstable test case
EXPECT_EQ("\"Однажды, в \"\n"
- "\"ѝтудёную \"\n"
+ "\"студёную \"\n"
"\"зимнюю \"\n"
"\"пору,\"",
- format("\"Однажды, в ѝтудёную зимнюю пору,\"",
+ format("\"Однажды, в студёную зимнюю пору,\"",
getLLVMStyleWithColumns(13)));
// FIXME: unstable test case
EXPECT_EQ(
"\"一 二 三 \"\n"
"\"四 五六 \"\n"
"\"七 八 九 \"\n"
- "\"坝\"",
- format("\"一 二 三 四 五六 七 八 九 坝\"", getLLVMStyleWithColumns(11)));
+ "\"十\"",
+ format("\"一 二 三 四 五六 七 八 九 十\"", getLLVMStyleWithColumns(11)));
// FIXME: unstable test case
EXPECT_EQ("\"一\t\"\n"
"\"二 \t\"\n"
@@ -22348,8 +22348,8 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
"\"五\t\"\n"
"\"六 \t\"\n"
"\"七 \"\n"
- "\"八九坝\tqq\"",
- format("\"一\t二 \t三 四 五\t六 \t七 八九坝\tqq\"",
+ "\"八九十\tqq\"",
+ format("\"一\t二 \t三 四 五\t六 \t七 八九十\tqq\"",
getLLVMStyleWithColumns(11)));
// UTF8 character in an escape sequence.
@@ -22362,44 +22362,44 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
TEST_F(FormatTest, HandlesDoubleWidthCharsInMultiLineStrings) {
verifyFormat("const char *sssss =\n"
" \"一二三四五六七八\\\n"
- " 九 坝\";",
+ " 九 十\";",
"const char *sssss = \"一二三四五六七八\\\n"
- " 九 坝\";",
+ " 九 十\";",
getLLVMStyleWithColumns(30));
}
TEST_F(FormatTest, SplitsUTF8LineComments) {
verifyFormat("// aaaaÄ\xc2\x8d", getLLVMStyleWithColumns(10));
- verifyFormat("// Я из леѝу\n"
+ verifyFormat("// Я из лесу\n"
"// вышел; был\n"
- "// ѝильный\n"
+ "// сильный\n"
"// мороз.",
- "// Я из леѝу вышел; был ѝильный мороз.",
+ "// Я из лесу вышел; был сильный мороз.",
getLLVMStyleWithColumns(13));
verifyFormat("// 一二三\n"
"// 四五六七\n"
"// 八 九\n"
- "// 坝",
- "// 一二三 四五六七 八 九 坝", getLLVMStyleWithColumns(9));
+ "// 十",
+ "// 一二三 四五六七 八 九 十", getLLVMStyleWithColumns(9));
}
TEST_F(FormatTest, SplitsUTF8BlockComments) {
- verifyFormat("/* Глѝжу,\n"
- " * поднимаетѝѝ\n"
+ verifyFormat("/* Гляжу,\n"
+ " * поднимается\n"
" * медленно в\n"
" * гору\n"
" * Лошадка,\n"
- " * везущаѝ\n"
- " * хвороѝту\n"
+ " * везущая\n"
+ " * хворосту\n"
" * воз. */",
- "/* Глѝжу, поднимаетѝѝ медленно в гору\n"
- " * Лошадка, везущаѝ хвороѝту воз. */",
+ "/* Гляжу, поднимается медленно в гору\n"
+ " * Лошадка, везущая хворосту воз. */",
getLLVMStyleWithColumns(13));
verifyFormat("/* 一二三\n"
" * 四五六七\n"
" * 八 九\n"
- " * 坝 */",
- "/* 一二三 四五六七 八 九 坝 */", getLLVMStyleWithColumns(9));
+ " * 十 */",
+ "/* 一二三 四五六七 八 九 十 */", getLLVMStyleWithColumns(9));
verifyFormat("/* 𝓣𝓮𝓼𝓽 𝔣𝔬𝔲𝔯\n"
" * 𝕓𝕪𝕥𝕖\n"
" * 𝖀𝕿𝕱-𝟠 */",
@@ -27908,9 +27908,9 @@ TEST_F(FormatTest, BreakAdjacentStringLiterals) {
TEST_F(FormatTest, AlignUTFCommentsAndStringLiterals) {
verifyFormat(
- "int rus; // Н теперь комментарии, например, на руѝѝком, 2-байта\n"
- "int long_rus; // Верхний коммент еще не превыѝил границу в 80, однако\n"
- " // уже отодвинут. Переноѝ, при ѝтом, отрабатывает верно");
+ "int rus; // А теперь комментарии, например, на русском, 2-байта\n"
+ "int long_rus; // Верхний коммент еще не превысил границу в 80, однако\n"
+ " // уже отодвинут. Перенос, при этом, отрабатывает верно");
auto Style = getLLVMStyle();
Style.ColumnLimit = 15;
@@ -27940,7 +27940,7 @@ TEST_F(FormatTest, AlignUTFCommentsAndStringLiterals) {
verifyFormat("Languages languages = {\n"
" Language{{'e', 'n'}, U\"Test English\" },\n"
" Language{{'l', 'v'}, U\"Test Latviešu\"},\n"
- " Language{{'r', 'u'}, U\"Test Руѝѝкий\" },\n"
+ " Language{{'r', 'u'}, U\"Test Русский\" },\n"
"};",
Style);
}
>From 602e7a81e23c4e7b481494cd92e754ad01aa9007 Mon Sep 17 00:00:00 2001
From: W123011 <ander.genua at worldline.com>
Date: Mon, 13 Jan 2025 10:26:35 +0100
Subject: [PATCH 4/6] Fix unit test
---
clang/unittests/Format/FormatTest.cpp | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 060899b6f6a247..f36d0d98a46bc0 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -28191,12 +28191,13 @@ TEST_F(FormatTest, BreakBinaryOperations) {
Style.BreakBinaryOperations = FormatStyle::BBO_OnePerLine;
// Check operator >> special case
- verifyFormat("std::cout\n"
- " << longOperand1\n"
- " << longOperand2\n"
- " << longOperand3\n"
- " << longOperand4\n"
- " << longOperand5;",
+ verifyFormat("std::cin\n"
+ " >> longOperand1\n"
+ " >> longOperand2\n"
+ " >> longOperand3\n"
+ " >> longOperand4\n"
+ " >> longOperand5\n"
+ " >> longOperand6;",
Style);
}
>From 5a7d8eeec9ba3c0e1968a0ba65b5b8480a94f52d Mon Sep 17 00:00:00 2001
From: W123011 <ander.genua at worldline.com>
Date: Fri, 17 Jan 2025 10:13:25 +0100
Subject: [PATCH 5/6] Apply PR suggestions
---
clang/lib/Format/ContinuationIndenter.cpp | 4 +-
clang/unittests/Format/FormatTest.cpp | 100 +++++++++++++---------
2 files changed, 63 insertions(+), 41 deletions(-)
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp
index 5e5c93e2a5286f..c311deaa17bb0e 100644
--- a/clang/lib/Format/ContinuationIndenter.cpp
+++ b/clang/lib/Format/ContinuationIndenter.cpp
@@ -147,8 +147,8 @@ static bool startsNextOperand(const FormatToken &Current) {
// Returns \c true if \c Current is a binary operation that must break.
static bool mustBreakBinaryOperation(const FormatToken &Current,
const FormatStyle &Style) {
- return Current.CanBreakBefore &&
- Style.BreakBinaryOperations != FormatStyle::BBO_Never &&
+ return Style.BreakBinaryOperations != FormatStyle::BBO_Never &&
+ Current.CanBreakBefore &&
(Style.BreakBeforeBinaryOperators == FormatStyle::BOS_None
? startsNextOperand
: isAlignableBinaryOperator)(Current);
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index f36d0d98a46bc0..a7d09f0fcf5ed3 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -22301,16 +22301,16 @@ TEST_F(FormatTest, HandlesUTF8BOM) {
#if !defined(_MSC_VER)
TEST_F(FormatTest, CountsUTF8CharactersProperly) {
- verifyFormat("\"Однажды в студёную зимнюю пору...\"",
+ verifyFormat("\"Однажды в ѝтудёную зимнюю пору...\"",
getLLVMStyleWithColumns(35));
- verifyFormat("\"一 二 三 四 五 六 七 八 九 十\"",
+ verifyFormat("\"一 二 三 四 五 六 七 八 九 坝\"",
getLLVMStyleWithColumns(31));
- verifyFormat("// Однажды в студёную зимнюю пору...",
+ verifyFormat("// Однажды в ѝтудёную зимнюю пору...",
getLLVMStyleWithColumns(36));
- verifyFormat("// 一 二 三 四 五 六 七 八 九 十", getLLVMStyleWithColumns(32));
- verifyFormat("/* Однажды в студёную зимнюю пору... */",
+ verifyFormat("// 一 二 三 四 五 六 七 八 九 坝", getLLVMStyleWithColumns(32));
+ verifyFormat("/* Однажды в ѝтудёную зимнюю пору... */",
getLLVMStyleWithColumns(39));
- verifyFormat("/* 一 二 三 四 五 六 七 八 九 十 */",
+ verifyFormat("/* 一 二 三 四 五 六 七 八 九 坝 */",
getLLVMStyleWithColumns(35));
}
@@ -22329,18 +22329,18 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
format("\"aaaaaaaÄ\xc2\x8d\";", getLLVMStyleWithColumns(10)));
// FIXME: unstable test case
EXPECT_EQ("\"Однажды, в \"\n"
- "\"студёную \"\n"
+ "\"ѝтудёную \"\n"
"\"зимнюю \"\n"
"\"пору,\"",
- format("\"Однажды, в студёную зимнюю пору,\"",
+ format("\"Однажды, в ѝтудёную зимнюю пору,\"",
getLLVMStyleWithColumns(13)));
// FIXME: unstable test case
EXPECT_EQ(
"\"一 二 三 \"\n"
"\"四 五六 \"\n"
"\"七 八 九 \"\n"
- "\"十\"",
- format("\"一 二 三 四 五六 七 八 九 十\"", getLLVMStyleWithColumns(11)));
+ "\"坝\"",
+ format("\"一 二 三 四 五六 七 八 九 坝\"", getLLVMStyleWithColumns(11)));
// FIXME: unstable test case
EXPECT_EQ("\"一\t\"\n"
"\"二 \t\"\n"
@@ -22348,8 +22348,8 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
"\"五\t\"\n"
"\"六 \t\"\n"
"\"七 \"\n"
- "\"八九十\tqq\"",
- format("\"一\t二 \t三 四 五\t六 \t七 八九十\tqq\"",
+ "\"八九坝\tqq\"",
+ format("\"一\t二 \t三 四 五\t六 \t七 八九坝\tqq\"",
getLLVMStyleWithColumns(11)));
// UTF8 character in an escape sequence.
@@ -22362,44 +22362,44 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
TEST_F(FormatTest, HandlesDoubleWidthCharsInMultiLineStrings) {
verifyFormat("const char *sssss =\n"
" \"一二三四五六七八\\\n"
- " 九 十\";",
+ " 九 坝\";",
"const char *sssss = \"一二三四五六七八\\\n"
- " 九 十\";",
+ " 九 坝\";",
getLLVMStyleWithColumns(30));
}
TEST_F(FormatTest, SplitsUTF8LineComments) {
verifyFormat("// aaaaÄ\xc2\x8d", getLLVMStyleWithColumns(10));
- verifyFormat("// Я из лесу\n"
+ verifyFormat("// Я из леѝу\n"
"// вышел; был\n"
- "// сильный\n"
+ "// ѝильный\n"
"// мороз.",
- "// Я из лесу вышел; был сильный мороз.",
+ "// Я из леѝу вышел; был ѝильный мороз.",
getLLVMStyleWithColumns(13));
verifyFormat("// 一二三\n"
"// 四五六七\n"
"// 八 九\n"
- "// 十",
- "// 一二三 四五六七 八 九 十", getLLVMStyleWithColumns(9));
+ "// 坝",
+ "// 一二三 四五六七 八 九 坝", getLLVMStyleWithColumns(9));
}
TEST_F(FormatTest, SplitsUTF8BlockComments) {
- verifyFormat("/* Гляжу,\n"
- " * поднимается\n"
+ verifyFormat("/* Глѝжу,\n"
+ " * поднимаетѝѝ\n"
" * медленно в\n"
" * гору\n"
" * Лошадка,\n"
- " * везущая\n"
- " * хворосту\n"
+ " * везущаѝ\n"
+ " * хвороѝту\n"
" * воз. */",
- "/* Гляжу, поднимается медленно в гору\n"
- " * Лошадка, везущая хворосту воз. */",
+ "/* Глѝжу, поднимаетѝѝ медленно в гору\n"
+ " * Лошадка, везущаѝ хвороѝту воз. */",
getLLVMStyleWithColumns(13));
verifyFormat("/* 一二三\n"
" * 四五六七\n"
" * 八 九\n"
- " * 十 */",
- "/* 一二三 四五六七 八 九 十 */", getLLVMStyleWithColumns(9));
+ " * 坝 */",
+ "/* 一二三 四五六七 八 九 坝 */", getLLVMStyleWithColumns(9));
verifyFormat("/* 𝓣𝓮𝓼𝓽 𝔣𝔬𝔲𝔯\n"
" * 𝕓𝕪𝕥𝕖\n"
" * 𝖀𝕿𝕱-𝟠 */",
@@ -27908,9 +27908,9 @@ TEST_F(FormatTest, BreakAdjacentStringLiterals) {
TEST_F(FormatTest, AlignUTFCommentsAndStringLiterals) {
verifyFormat(
- "int rus; // А теперь комментарии, например, на русском, 2-байта\n"
- "int long_rus; // Верхний коммент еще не превысил границу в 80, однако\n"
- " // уже отодвинут. Перенос, при этом, отрабатывает верно");
+ "int rus; // Н теперь комментарии, например, на руѝѝком, 2-байта\n"
+ "int long_rus; // Верхний коммент еще не превыѝил границу в 80, однако\n"
+ " // уже отодвинут. Переноѝ, при ѝтом, отрабатывает верно");
auto Style = getLLVMStyle();
Style.ColumnLimit = 15;
@@ -27940,7 +27940,7 @@ TEST_F(FormatTest, AlignUTFCommentsAndStringLiterals) {
verifyFormat("Languages languages = {\n"
" Language{{'e', 'n'}, U\"Test English\" },\n"
" Language{{'l', 'v'}, U\"Test Latviešu\"},\n"
- " Language{{'r', 'u'}, U\"Test Русский\" },\n"
+ " Language{{'r', 'u'}, U\"Test Руѝѝкий\" },\n"
"};",
Style);
}
@@ -27987,6 +27987,11 @@ TEST_F(FormatTest, BreakBinaryOperations) {
" operand1 + operand2 - (operand3 + operand4);",
Style);
+ // Check operator>> special case.
+ verifyFormat("std::cin >> longOperand_1 >> longOperand_2 >>\n"
+ " longOperand_3_;",
+ Style);
+
Style.BreakBinaryOperations = FormatStyle::BBO_OnePerLine;
// Logical operations
@@ -28065,6 +28070,13 @@ TEST_F(FormatTest, BreakBinaryOperations) {
" operand6->member;",
Style);
+ // Check operator>> special case.
+ verifyFormat("std::cin >>\n"
+ " longOperand_1 >>\n"
+ " longOperand_2 >>\n"
+ " longOperand_3_;",
+ Style);
+
Style.BreakBinaryOperations = FormatStyle::BBO_RespectPrecedence;
verifyFormat("result = op1 + op2 * op3 - op4;", Style);
@@ -28090,6 +28102,13 @@ TEST_F(FormatTest, BreakBinaryOperations) {
" byte_buffer[3] << 24;",
Style);
+ // Check operator>> special case.
+ verifyFormat("std::cin >>\n"
+ " longOperand_1 >>\n"
+ " longOperand_2 >>\n"
+ " longOperand_3_;",
+ Style);
+
Style.BreakBinaryOperations = FormatStyle::BBO_OnePerLine;
Style.BreakBeforeBinaryOperators = FormatStyle::BOS_NonAssignment;
@@ -28164,6 +28183,13 @@ TEST_F(FormatTest, BreakBinaryOperations) {
" << 24;",
Style);
+ // Check operator>> special case.
+ verifyFormat("std::cin\n"
+ " >> longOperand_1\n"
+ " >> longOperand_2\n"
+ " >> longOperand_3_;",
+ Style);
+
Style.BreakBinaryOperations = FormatStyle::BBO_RespectPrecedence;
verifyFormat("result = op1 + op2 * op3 - op4;", Style);
@@ -28189,15 +28215,11 @@ TEST_F(FormatTest, BreakBinaryOperations) {
" | byte_buffer[3] << 24;",
Style);
- Style.BreakBinaryOperations = FormatStyle::BBO_OnePerLine;
- // Check operator >> special case
+ // Check operator>> special case.
verifyFormat("std::cin\n"
- " >> longOperand1\n"
- " >> longOperand2\n"
- " >> longOperand3\n"
- " >> longOperand4\n"
- " >> longOperand5\n"
- " >> longOperand6;",
+ " >> longOperand_1\n"
+ " >> longOperand_2\n"
+ " >> longOperand_3_;",
Style);
}
>From a2c83e642b909e36fd5f3070a591319c40ba1c06 Mon Sep 17 00:00:00 2001
From: W123011 <ander.genua at worldline.com>
Date: Fri, 17 Jan 2025 10:19:53 +0100
Subject: [PATCH 6/6] fix encoding
---
clang/unittests/Format/FormatTest.cpp | 62 +++++++++++++--------------
1 file changed, 31 insertions(+), 31 deletions(-)
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index a7d09f0fcf5ed3..8a1a883ba090c2 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -22301,16 +22301,16 @@ TEST_F(FormatTest, HandlesUTF8BOM) {
#if !defined(_MSC_VER)
TEST_F(FormatTest, CountsUTF8CharactersProperly) {
- verifyFormat("\"Однажды в ѝтудёную зимнюю пору...\"",
+ verifyFormat("\"Однажды в студёную зимнюю пору...\"",
getLLVMStyleWithColumns(35));
- verifyFormat("\"一 二 三 四 五 六 七 八 九 坝\"",
+ verifyFormat("\"一 二 三 四 五 六 七 八 九 十\"",
getLLVMStyleWithColumns(31));
- verifyFormat("// Однажды в ѝтудёную зимнюю пору...",
+ verifyFormat("// Однажды в студёную зимнюю пору...",
getLLVMStyleWithColumns(36));
- verifyFormat("// 一 二 三 四 五 六 七 八 九 坝", getLLVMStyleWithColumns(32));
- verifyFormat("/* Однажды в ѝтудёную зимнюю пору... */",
+ verifyFormat("// 一 二 三 四 五 六 七 八 九 十", getLLVMStyleWithColumns(32));
+ verifyFormat("/* Однажды в студёную зимнюю пору... */",
getLLVMStyleWithColumns(39));
- verifyFormat("/* 一 二 三 四 五 六 七 八 九 坝 */",
+ verifyFormat("/* 一 二 三 四 五 六 七 八 九 十 */",
getLLVMStyleWithColumns(35));
}
@@ -22329,18 +22329,18 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
format("\"aaaaaaaÄ\xc2\x8d\";", getLLVMStyleWithColumns(10)));
// FIXME: unstable test case
EXPECT_EQ("\"Однажды, в \"\n"
- "\"ѝтудёную \"\n"
+ "\"студёную \"\n"
"\"зимнюю \"\n"
"\"пору,\"",
- format("\"Однажды, в ѝтудёную зимнюю пору,\"",
+ format("\"Однажды, в студёную зимнюю пору,\"",
getLLVMStyleWithColumns(13)));
// FIXME: unstable test case
EXPECT_EQ(
"\"一 二 三 \"\n"
"\"四 五六 \"\n"
"\"七 八 九 \"\n"
- "\"坝\"",
- format("\"一 二 三 四 五六 七 八 九 坝\"", getLLVMStyleWithColumns(11)));
+ "\"十\"",
+ format("\"一 二 三 四 五六 七 八 九 十\"", getLLVMStyleWithColumns(11)));
// FIXME: unstable test case
EXPECT_EQ("\"一\t\"\n"
"\"二 \t\"\n"
@@ -22348,8 +22348,8 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
"\"五\t\"\n"
"\"六 \t\"\n"
"\"七 \"\n"
- "\"八九坝\tqq\"",
- format("\"一\t二 \t三 四 五\t六 \t七 八九坝\tqq\"",
+ "\"八九十\tqq\"",
+ format("\"一\t二 \t三 四 五\t六 \t七 八九十\tqq\"",
getLLVMStyleWithColumns(11)));
// UTF8 character in an escape sequence.
@@ -22362,44 +22362,44 @@ TEST_F(FormatTest, SplitsUTF8Strings) {
TEST_F(FormatTest, HandlesDoubleWidthCharsInMultiLineStrings) {
verifyFormat("const char *sssss =\n"
" \"一二三四五六七八\\\n"
- " 九 坝\";",
+ " 九 十\";",
"const char *sssss = \"一二三四五六七八\\\n"
- " 九 坝\";",
+ " 九 十\";",
getLLVMStyleWithColumns(30));
}
TEST_F(FormatTest, SplitsUTF8LineComments) {
verifyFormat("// aaaaÄ\xc2\x8d", getLLVMStyleWithColumns(10));
- verifyFormat("// Я из леѝу\n"
+ verifyFormat("// Я из лесу\n"
"// вышел; был\n"
- "// ѝильный\n"
+ "// сильный\n"
"// мороз.",
- "// Я из леѝу вышел; был ѝильный мороз.",
+ "// Я из лесу вышел; был сильный мороз.",
getLLVMStyleWithColumns(13));
verifyFormat("// 一二三\n"
"// 四五六七\n"
"// 八 九\n"
- "// 坝",
- "// 一二三 四五六七 八 九 坝", getLLVMStyleWithColumns(9));
+ "// 十",
+ "// 一二三 四五六七 八 九 十", getLLVMStyleWithColumns(9));
}
TEST_F(FormatTest, SplitsUTF8BlockComments) {
- verifyFormat("/* Глѝжу,\n"
- " * поднимаетѝѝ\n"
+ verifyFormat("/* Гляжу,\n"
+ " * поднимается\n"
" * медленно в\n"
" * гору\n"
" * Лошадка,\n"
- " * везущаѝ\n"
- " * хвороѝту\n"
+ " * везущая\n"
+ " * хворосту\n"
" * воз. */",
- "/* Глѝжу, поднимаетѝѝ медленно в гору\n"
- " * Лошадка, везущаѝ хвороѝту воз. */",
+ "/* Гляжу, поднимается медленно в гору\n"
+ " * Лошадка, везущая хворосту воз. */",
getLLVMStyleWithColumns(13));
verifyFormat("/* 一二三\n"
" * 四五六七\n"
" * 八 九\n"
- " * 坝 */",
- "/* 一二三 四五六七 八 九 坝 */", getLLVMStyleWithColumns(9));
+ " * 十 */",
+ "/* 一二三 四五六七 八 九 十 */", getLLVMStyleWithColumns(9));
verifyFormat("/* 𝓣𝓮𝓼𝓽 𝔣𝔬𝔲𝔯\n"
" * 𝕓𝕪𝕥𝕖\n"
" * 𝖀𝕿𝕱-𝟠 */",
@@ -27908,9 +27908,9 @@ TEST_F(FormatTest, BreakAdjacentStringLiterals) {
TEST_F(FormatTest, AlignUTFCommentsAndStringLiterals) {
verifyFormat(
- "int rus; // Н теперь комментарии, например, на руѝѝком, 2-байта\n"
- "int long_rus; // Верхний коммент еще не превыѝил границу в 80, однако\n"
- " // уже отодвинут. Переноѝ, при ѝтом, отрабатывает верно");
+ "int rus; // А теперь комментарии, например, на русском, 2-байта\n"
+ "int long_rus; // Верхний коммент еще не превысил границу в 80, однако\n"
+ " // уже отодвинут. Перенос, при этом, отрабатывает верно");
auto Style = getLLVMStyle();
Style.ColumnLimit = 15;
@@ -27940,7 +27940,7 @@ TEST_F(FormatTest, AlignUTFCommentsAndStringLiterals) {
verifyFormat("Languages languages = {\n"
" Language{{'e', 'n'}, U\"Test English\" },\n"
" Language{{'l', 'v'}, U\"Test Latviešu\"},\n"
- " Language{{'r', 'u'}, U\"Test Руѝѝкий\" },\n"
+ " Language{{'r', 'u'}, U\"Test Русский\" },\n"
"};",
Style);
}
More information about the cfe-commits
mailing list