forked from OSchip/llvm-project
[clang-format] Indent TT_CtorInitializerColon after requires clauses
Fixes https://github.com/llvm/llvm-project/issues/56215 Differential Revision: https://reviews.llvm.org/D129942
This commit is contained in:
parent
2b04c41b28
commit
3c18a8b3a3
|
@ -1190,6 +1190,10 @@ unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (NextNonComment->isOneOf(TT_CtorInitializerColon, TT_InheritanceColon,
|
||||
TT_InheritanceComma)) {
|
||||
return State.FirstIndent + Style.ConstructorInitializerIndentWidth;
|
||||
}
|
||||
if ((PreviousNonComment &&
|
||||
(PreviousNonComment->ClosesTemplateDeclaration ||
|
||||
PreviousNonComment->ClosesRequiresClause ||
|
||||
|
@ -1264,10 +1268,6 @@ unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) {
|
|||
Style.BreakInheritanceList == FormatStyle::BILS_AfterColon) {
|
||||
return CurrentState.Indent;
|
||||
}
|
||||
if (NextNonComment->isOneOf(TT_CtorInitializerColon, TT_InheritanceColon,
|
||||
TT_InheritanceComma)) {
|
||||
return State.FirstIndent + Style.ConstructorInitializerIndentWidth;
|
||||
}
|
||||
if (Previous.is(tok::r_paren) && !Current.isBinaryOperator() &&
|
||||
!Current.isOneOf(tok::colon, tok::comment)) {
|
||||
return ContinuationIndent;
|
||||
|
|
|
@ -24714,6 +24714,18 @@ TEST_F(FormatTest, RequiresClauses) {
|
|||
"struct S {};",
|
||||
Style);
|
||||
|
||||
Style = getLLVMStyle();
|
||||
Style.ConstructorInitializerIndentWidth = 4;
|
||||
Style.BreakConstructorInitializers = FormatStyle::BCIS_BeforeColon;
|
||||
Style.PackConstructorInitializers = FormatStyle::PCIS_Never;
|
||||
verifyFormat("constexpr Foo(Foo const &other)\n"
|
||||
" requires std::is_copy_constructible<T>\n"
|
||||
" : value{other.value} {\n"
|
||||
" do_magic();\n"
|
||||
" do_more_magic();\n"
|
||||
"}",
|
||||
Style);
|
||||
|
||||
// Not a clause, but we once hit an assert.
|
||||
verifyFormat("#if 0\n"
|
||||
"#else\n"
|
||||
|
|
Loading…
Reference in New Issue