curdeius created this revision.
curdeius added reviewers: MyDeveloperDay, HazardyKnusperkeks, owenpan.
curdeius requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Before this patch, the code:
template <class T>
concept a_concept = X<>;
namespace B {
struct b_struct {};
} // namespace B
with config:
NamespaceIndentation: None
was wrongly indented inside namespace B, giving:
template <class T>
concept a_concept = X<>;
namespace B {
struct b_struct {};
} // namespace B
Fixes https://github.com/llvm/llvm-project/issues/50645
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D116008
Files:
clang/lib/Format/UnwrappedLineParser.cpp
clang/unittests/Format/FormatTest.cpp
Index: clang/unittests/Format/FormatTest.cpp
===================================================================
--- clang/unittests/Format/FormatTest.cpp
+++ clang/unittests/Format/FormatTest.cpp
@@ -3548,6 +3548,14 @@
"} // namespace in\n"
"} // namespace out",
Style));
+
+ Style.NamespaceIndentation = FormatStyle::NI_None;
+ verifyFormat("template <class T>\n"
+ "concept a_concept = X<>;\n"
+ "namespace B {\n"
+ "struct b_struct {};\n"
+ "} // namespace B\n",
+ Style);
}
TEST_F(FormatTest, NamespaceMacros) {
@@ -19430,15 +19438,13 @@
TEST_F(FormatTest, CountsUTF8CharactersProperly) {
verifyFormat("\"ÐÐ´Ð½Ð°Ð¶Ð´Ñ Ð² ÑÑÑдÑнÑÑ Ð·Ð¸Ð¼Ð½ÑÑ Ð¿Ð¾ÑÑ...\"",
getLLVMStyleWithColumns(35));
- verifyFormat("\"ä¸ äº ä¸ å äº å
ä¸ å
« ä¹ å\"",
- getLLVMStyleWithColumns(31));
+ verifyFormat("\"ä¸ äº ä¸ å äº å
ä¸ å
« ä¹ å\"", getLLVMStyleWithColumns(31));
verifyFormat("// ÐÐ´Ð½Ð°Ð¶Ð´Ñ Ð² ÑÑÑдÑнÑÑ Ð·Ð¸Ð¼Ð½ÑÑ Ð¿Ð¾ÑÑ...",
getLLVMStyleWithColumns(36));
verifyFormat("// ä¸ äº ä¸ å äº å
ä¸ å
« ä¹ å", getLLVMStyleWithColumns(32));
verifyFormat("/* ÐÐ´Ð½Ð°Ð¶Ð´Ñ Ð² ÑÑÑдÑнÑÑ Ð·Ð¸Ð¼Ð½ÑÑ Ð¿Ð¾ÑÑ... */",
getLLVMStyleWithColumns(39));
- verifyFormat("/* ä¸ äº ä¸ å äº å
ä¸ å
« ä¹ å */",
- getLLVMStyleWithColumns(35));
+ verifyFormat("/* ä¸ äº ä¸ å äº å
ä¸ å
« ä¹ å */", getLLVMStyleWithColumns(35));
}
TEST_F(FormatTest, SplitsUTF8Strings) {
@@ -19458,21 +19464,20 @@
"\"поÑÑ,\"",
format("\"ÐднаждÑ, в ÑÑÑдÑнÑÑ Ð·Ð¸Ð¼Ð½ÑÑ Ð¿Ð¾ÑÑ,\"",
getLLVMStyleWithColumns(13)));
+ EXPECT_EQ("\"ä¸ äº ä¸ \"\n"
+ "\"å äºå
\"\n"
+ "\"ä¸ å
« ä¹ \"\n"
+ "\"å\"",
+ format("\"ä¸ äº ä¸ å äºå
ä¸ å
« ä¹ å\"", getLLVMStyleWithColumns(11)));
EXPECT_EQ(
- "\"ä¸ äº ä¸ \"\n"
- "\"å äºå
\"\n"
- "\"ä¸ å
« ä¹ \"\n"
- "\"å\"",
- format("\"ä¸ äº ä¸ å äºå
ä¸ å
« ä¹ å\"", getLLVMStyleWithColumns(11)));
- EXPECT_EQ("\"ä¸\t\"\n"
- "\"äº \t\"\n"
- "\"ä¸ å \"\n"
- "\"äº\t\"\n"
- "\"å
\t\"\n"
- "\"ä¸ \"\n"
- "\"å
«ä¹å\tqq\"",
- format("\"ä¸\täº \tä¸ å äº\tå
\tä¸ å
«ä¹å\tqq\"",
- getLLVMStyleWithColumns(11)));
+ "\"ä¸\t\"\n"
+ "\"äº \t\"\n"
+ "\"ä¸ å \"\n"
+ "\"äº\t\"\n"
+ "\"å
\t\"\n"
+ "\"ä¸ \"\n"
+ "\"å
«ä¹å\tqq\"",
+ format("\"ä¸\täº \tä¸ å äº\tå
\tä¸ å
«ä¹å\tqq\"", getLLVMStyleWithColumns(11)));
// UTF8 character in an escape sequence.
EXPECT_EQ("\"aaaaaa\"\n"
@@ -19517,16 +19522,16 @@
format("/* ÐлÑжÑ, поднимаеÑÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ в гоÑÑ\n"
" * ÐоÑадка, везÑÑÐ°Ñ Ñ
воÑоÑÑÑ Ð²Ð¾Ð·. */",
getLLVMStyleWithColumns(13)));
- EXPECT_EQ(
- "/* ä¸äºä¸\n"
- " * åäºå
ä¸\n"
- " * å
« ä¹\n"
- " * å */",
- format("/* ä¸äºä¸ åäºå
ä¸ å
« ä¹ å */", getLLVMStyleWithColumns(9)));
+ EXPECT_EQ("/* ä¸äºä¸\n"
+ " * åäºå
ä¸\n"
+ " * å
« ä¹\n"
+ " * å */",
+ format("/* ä¸äºä¸ åäºå
ä¸ å
« ä¹ å */", getLLVMStyleWithColumns(9)));
EXPECT_EQ("/* ð£ð®ð¼ð½ ð£ð¬ð²ð¯\n"
" * ððªð¥ð\n"
" * ðð¿ð±-ð */",
- format("/* ð£ð®ð¼ð½ ð£ð¬ð²ð¯ ððªð¥ð ðð¿ð±-ð */", getLLVMStyleWithColumns(12)));
+ format("/* ð£ð®ð¼ð½ ð£ð¬ð²ð¯ ððªð¥ð ðð¿ð±-ð */",
+ getLLVMStyleWithColumns(12)));
}
#endif // _MSC_VER
Index: clang/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- clang/lib/Format/UnwrappedLineParser.cpp
+++ clang/lib/Format/UnwrappedLineParser.cpp
@@ -1438,7 +1438,7 @@
break;
case tok::kw_concept:
parseConcept();
- break;
+ return;
case tok::kw_requires:
parseRequires();
break;
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits