<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/54428>54428</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Format] Sibling requires-expressions in requires-clause should not indent like a continuation
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          JohelEGP
      </td>
    </tr>
</table>

<pre>
    See `.clang-format` at https://github.com/mpusz/units/blob/144f6951c09ee721167cc3a37518d20a52c0587f/.clang-format and diff https://github.com/mpusz/units/pull/339/files#diff-9f4b7f16a126a4c94a18b1da221e9b3a476fb7a3131e091d1d8d84aa026cc657R288, reproduced below.

Actual diff:
```diff
 template<typename CastSpec, typename K, typename U, typename Rep>
 [[nodiscard]] constexpr QuantityKind auto quantity_kind_cast(const quantity_kind<K, U, Rep>& qk)
-  requires requires { requires is_specialization_of<CastSpec, quantity_kind>;
-              requires requires { quantity_cast<typename CastSpec::quantity_type>(qk.common()); }; } ||
-           requires { requires Kind<CastSpec>; requires UnitOf<U, typename CastSpec::dimension>; } ||
-           requires { quantity_cast<CastSpec>(qk.common()); }  // TODO: Simplify when Clang catches up.
+  requires requires {
+             requires is_specialization_of<CastSpec, quantity_kind>;
+             requires requires { quantity_cast<typename CastSpec::quantity_type>(qk.common()); };
+           } || requires {
+                  requires Kind<CastSpec>;
+                  requires UnitOf<U, typename CastSpec::dimension>;
+                } || requires { quantity_cast<CastSpec>(qk.common()); }  // TODO: Simplify when Clang catches up.
 {
 }
```

More reasonable diff has the components of a _requires-clause_ at the same level:
```diff
 template<typename CastSpec, typename K, typename U, typename Rep>
 [[nodiscard]] constexpr QuantityKind auto quantity_kind_cast(const quantity_kind<K, U, Rep>& qk)
-  requires requires { requires is_specialization_of<CastSpec, quantity_kind>;
-              requires requires { quantity_cast<typename CastSpec::quantity_type>(qk.common()); }; } ||
-           requires { requires Kind<CastSpec>; requires UnitOf<U, typename CastSpec::dimension>; } ||
-           requires { quantity_cast<CastSpec>(qk.common()); }  // TODO: Simplify when Clang catches up.
+  requires requires {
+             requires is_specialization_of<CastSpec, quantity_kind>;
+             requires requires { quantity_cast<typename CastSpec::quantity_type>(qk.common()); };
+           } ||
+           requires {
+             requires Kind<CastSpec>;
+             requires UnitOf<U, typename CastSpec::dimension>;
+           } || requires { quantity_cast<CastSpec>(qk.common()); }  // TODO: Simplify when Clang catches up.
 {
 }
```

`.clang-format`:
```yaml
########################################################################################
# NOTE: At least clang-format-15 is needed to format the code of this project correctly
########################################################################################
---
BasedOnStyle:  Google
---
Language:        Cpp
AccessModifierOffset: -2
# AlignAfterOpenBracket: Align
# AlignArrayOfStructures: None
# AlignConsecutiveMacros: None
# AlignConsecutiveAssignments: None
# AlignConsecutiveBitFields: None
# AlignConsecutiveDeclarations: None
# AlignEscapedNewlines: Left
# AlignOperands:   Align
# AlignTrailingComments: true
# AllowAllArgumentsOnNextLine: true
# AllowAllParametersOfDeclarationOnNextLine: true
# AllowShortEnumsOnASingleLine: true
# AllowShortBlocksOnASingleLine: Never
# AllowShortCaseLabelsOnASingleLine: false
# AllowShortFunctionsOnASingleLine: All
# AllowShortLambdasOnASingleLine: All
# AllowShortIfStatementsOnASingleLine: WithoutElse
# AllowShortLoopsOnASingleLine: true
# AlwaysBreakAfterDefinitionReturnType: None
# AlwaysBreakAfterReturnType: None
# AlwaysBreakBeforeMultilineStrings: true
# AlwaysBreakTemplateDeclarations: Yes
# AttributeMacros:
#   - __capability
# BinPackArguments: true
# BinPackParameters: true
BraceWrapping:
#   AfterCaseLabel:  false
#   AfterClass:      false
#   AfterControlStatement: Never
#   AfterEnum:       false
  AfterFunction:   true
#   AfterNamespace:  false
#   AfterObjCDeclaration: false
#   AfterStruct:     false
#   AfterUnion:      false
#   AfterExternBlock: false
#   BeforeCatch:     false
#   BeforeElse:      false
#   BeforeLambdaBody: false
#   BeforeWhile:     false
#   IndentBraces:    false
#   SplitEmptyFunction: true
  SplitEmptyRecord: false
#   SplitEmptyNamespace: true
# BreakBeforeBinaryOperators: None
# BreakBeforeConceptDeclarations: Always
BreakBeforeBraces: Custom
# BreakBeforeInheritanceComma: false
BreakInheritanceList: AfterColon
# BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: true
BreakConstructorInitializers: AfterColon
# BreakAfterJavaFieldAnnotations: false
# BreakStringLiterals: true
ColumnLimit:     120
CommentPragmas:  '^ NOLINT'
# CommentPragmas:  '^ IWYU pragma:'
QualifierAlignment: Left
# CompactNamespaces: false
# ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 2
# Cpp11BracedListStyle: true
DeriveLineEnding: false
DerivePointerAlignment: false
# DisableFormat:   false
# EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: Leave
# ExperimentalAutoDetectBinPacking: false
# PackConstructorInitializers: NextLine
# ConstructorInitializerAllOnOneLineOrOnePerLine: false
# AllowAllConstructorInitializersOnNextLine: true
# FixNamespaceComments: true
# ForEachMacros:
#   - foreach
#   - Q_FOREACH
#   - BOOST_FOREACH
# IfMacros:
#   - KJ_IF_MAYBE
IncludeBlocks:   Merge
IncludeCategories: 
  - Regex:           '^".*'
    Priority:        1
  - Regex:           '^".+/.*'
    Priority:        2
  - Regex:           '^<.+/.*'
    Priority:        3
  - Regex:           '^<.*\.h>'
    Priority:        4
  - Regex:           '^<.*'
    Priority:        5
# IncludeIsMainRegex: '([-_](test|unittest))?$'
# IncludeIsMainSourceRegex: ''
# IndentAccessModifiers: false
# IndentCaseLabels: true
# IndentCaseBlocks: false
# IndentGotoLabels: true
# IndentPPDirectives: None
# IndentExternBlock: AfterExternBlock
# IndentRequiresClause: true
# IndentWidth:     2
# IndentWrappedFunctionNames: false
# InsertBraces:    false
# InsertTrailingCommas: None
# JavaScriptQuotes: Leave
# JavaScriptWrapImports: true
# KeepEmptyLinesAtTheStartOfBlocks: false
# LambdaBodyIndentation: Signature
# MacroBlockBegin: ''
# MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 2
# NamespaceIndentation: None
# ObjCBinPackProtocolList: Never
# ObjCBlockIndentWidth: 2
# ObjCBreakBeforeNestedBlockParam: true
# ObjCSpaceAfterProperty: false
# ObjCSpaceBeforeProtocolList: true
# PenaltyBreakAssignment: 2
# PenaltyBreakBeforeFirstCallParameter: 1
# PenaltyBreakComment: 300
# PenaltyBreakFirstLessLess: 120
# PenaltyBreakOpenParenthesis: 0
# PenaltyBreakString: 1000
# PenaltyBreakTemplateDeclaration: 10
# PenaltyExcessCharacter: 1000000
# PenaltyReturnTypeOnItsOwnLine: 200
# PenaltyIndentedWhitespace: 0
# PointerAlignment: Left
# PPIndentWidth:   -1
# RawStringFormats:
#   - Language:        Cpp
#     Delimiters:
#       - cc
#       - CC
#       - cpp
#       - Cpp
#       - CPP
#       - 'c++'
#       - 'C++'
#     CanonicalDelimiter: ''
#     BasedOnStyle:    google
#   - Language:        TextProto
#     Delimiters:
#       - pb
#       - PB
#       - proto
#       - PROTO
#     EnclosingFunctions:
#       - EqualsProto
#       - EquivToProto
#       - PARSE_PARTIAL_TEXT_PROTO
#       - PARSE_TEST_PROTO
#       - PARSE_TEXT_PROTO
#       - ParseTextOrDie
#       - ParseTextProtoOrDie
#       - ParseTestProto
#       - ParsePartialTestProto
#     CanonicalDelimiter: pb
#     BasedOnStyle:    google
# ReferenceAlignment: Pointer
# ReflowComments:  true
# RemoveBracesLLVM: false
# RequiresClausePosition: OwnLine
# SeparateDefinitionBlocks: Leave
# ShortNamespaceLines: 1
# SortIncludes:    CaseSensitive
# SortJavaStaticImport: Before
# SortUsingDeclarations: true
# SpaceAfterCStyleCast: false
# SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
# SpaceBeforeAssignmentOperators: true
# SpaceBeforeCaseColon: false
# SpaceBeforeCpp11BracedList: false
# SpaceBeforeCtorInitializerColon: true
# SpaceBeforeInheritanceColon: true
# SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
#   AfterControlStatements: true
#   AfterForeachMacros: true
#   AfterFunctionDefinitionName: false
#   AfterFunctionDeclarationName: false
#   AfterIfMacros:   true
#   AfterOverloadedOperator: false
  AfterRequiresInClause: true
#   AfterRequiresInExpression: false
#   BeforeNonEmptyParentheses: false
# SpaceAroundPointerQualifiers: Default
# SpaceBeforeRangeBasedForLoopColon: true
# SpaceInEmptyBlock: false
# SpaceInEmptyParentheses: false
# SpacesBeforeTrailingComments: 2
# SpacesInAngles:  Never
# SpacesInConditionalStatement: false
# SpacesInContainerLiterals: true
# SpacesInCStyleCastParentheses: false
# SpacesInLineCommentPrefix:
#   Minimum:         1
#   Maximum:         -1
# SpacesInParentheses: false
# SpacesInSquareBrackets: false
# SpaceBeforeSquareBrackets: false
# BitFieldColonSpacing: Both
Standard: Latest
# StatementAttributeLikeMacros:
#   - Q_EMIT
# StatementMacros:
#   - Q_UNUSED
#   - QT_REQUIRE_VERSION
# TabWidth:        8
# UseCRLF:         false
# UseTab:          Never
# WhitespaceSensitiveMacros:
#   - STRINGIZE
#   - PP_STRINGIZE
#   - BOOST_PP_STRINGIZE
#   - NS_SWIFT_NAME
#   - CF_SWIFT_NAME
# ...
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWltz4jgW_jXkxUUKm_tDHsCYXqYJ0ECmd_aFErYAbYzktuUkzK_fI8l3ZELvbk3V1naKcLE-HR0dnbu9Z97laYOx0ei1Hl0f0WPzwMIz4vDbQNw4cR5EjfaoYU3hdST8FO8fXXaGH-cgjv6Ez5gSHsHn3md7-DA7nUNv2DXd1hDjvmWavb7rtlG73zUHntVCXcttdQf9A0BLCxqIeoZHDoefWTOIfR8-2u0hvB-Ij-FiWxBpDg-dff9g9pBp9VDHHXaQOdibHrIsEw_3bdTp9w77PmqbbRO3hqZnegNv0EGoZfVct9ftr63BoGHZRoiDkHmxiz1jj332_thoTRqtkXofuTxGvuRa8KtGei31klflJYPjc-Ajjhttm18CTNEZGzaK-CbArlgku_i19Oul9GuNg0bbSSg2umN4UeaRyEWh1-hO4GW4jEYcfwSh8S1GlBN--UpAqijmzPiRXNm9wqWdC6s3rIGcUB4CHiUXcvFkTatn_HhtWEO1eNMAqfyISYij_EujP85_kGgXwdYI8smfiBNGdwwEZBe3XFnTabTHGfXin36lbLbch06qcBztUQYT43Ijgx-vQpXOjMJ3sSN4tcdAc5J8wL8tXle86Hf6VUksX1ZsJB9-AT1diq2Xj7LMpUfOmEYgpWT23VxUpVDk4sZODUNZlrFdTpawvrEhoJ7kcDHeT5gatjBKw0XcPcE6cZBqvDWuOY3CuI7T_0QZaon-Bdqg4yA_mjskUOZYqyn3TPx3dKiWbs0G_lpVykUmRV12m0X_-sxCDHyiiFG093ESHlBk8BMGZ3cOGMWURwY7GMjYpRtqQliJI7wT8UsAIyEuH79h_5eT_uWkfznp_x8nrRv9CaH8hMv-r3vr_y1Hrakern3tBZ39dKvtXy_xSqVhLJZbRxzLiEOkgiM1itJsml0wUINi7EEZAmEiqZhUFPSwiH_8BAgoVf6JXZjMwhA-_csvcV-Lu9lsqi9jFGFvSTf84mMhe-MLY0f4WkbN4RxidFQI9WcHQVr_uTiKniHAHwgOl4dDhLnANa38ZEc-OdLRgcM4-IJxiNxXBZIDVVwYosvysOFhDKUl2LwALiDLqeBsSAmwG3Pyhp-RG7I7cKMoggtnkS99Dh4TPiXY9-6ATjCoaihjRh3agfQnwN4Cv_uEqj3N8YFXUCCeEFG1pKGVzjZEBCgcbXBx6T5AUqXloESHt1F4jCVkSRf4g89h2XrwCtg_YzigaHko7ObTqZsTC7lD4zOsMtoAXz7-DD32mft6DV9Achrq8ODd8RztsX8954D8SLvGNKauPI2rKYDRTZij895Dd8NnoJ6QJifircz5TviJxdyp4W3OWPC5tN7RJRpD2v8qzWaCDwSCKuxojcEm6FYmBteKVp51J3aMwZfi59jnQrMwGB5wplWsbMo2qROqiv8HaHaO50BpH_PcPPMxw2gaO4jfAdrDojx30saY0BX4h0x7r_lIELnKliHCveDvIQoC2EZlUSmWTKGklVV0KMX4KIoyd1eDYZSHzM80QaPFCVIYSO47C9SS8VRdFaa82wSygL1GAezsBtPL_T_twoloLCQBKt-acqTHQBKXMlSLcT7gjUqD1i6mNMsWKVXtYgojjaV2MYVRNjpm3uXGYt9PxMe1i82oBwclNSQ93SvMBnJC7pwDfikeS34oRcQaQ5rhadnJQaWjq6hybn-g1Si8yADAWagJIwUsaJ6LA161PmWgqRXklLPt2nHE2VlLckZPOCQcAWERWlBlTxJZwMxJpAK4MgSfUS3VLahHdVdFSwWgCKNSHVk4Ey5OVF9g0-lGE1bum3STIznwG3pDMqqPKGU8F13l-OQE5QjnBKbBaJkLWCA-0zk5k8yMTKuVjsnQvArR8YyUmjWsfqPrQIY7ny224ke2Uj149v2PF8hmxXV5IyCZ9C2GzYpUS6YDqd8p5xJAFPSNZ4qn26JehMpAvhOPS4vtpDuCeovGUlwVRCHLg5TQNKWyeUI9spwyl9oE1OdNhjyHeso7F9lSwytGKK9sr8L7hESiFzZVdZaUfwUhDU8sJE-9nKNW_HQGVSp3jZ1j9FYk_QHaLIpXjvxRzNkEYpDLk6B0vSkxRYzcUNksx_rkcCCHWEJKJgW4DOHLCoe3UiF4q1n1Vl43JR-Z4tRnmSB7B7mnmtAuBAmj5YvfdtPl2hnZfytfHi-Xm-310OxQQ_vrb7vZdPc8-mOc9Bhn1PVjD6u8UmnDMw6PuDQKQQgfWUiULaSevGms8RF_FOoaI7W_hmU9Nqzc7sTIKiRAgl8KePNuUmNxt-8OitY9FNv2T1Bs301x1OjajyfZR7lNsvMTJD8h1S2cuTqrWfSMCM3oCgLWoNEdN3eifWwNOIbg07fFDVD5NWnyTBtWp-RbS-Q2LA5dXCZawgq3VjZ-ndtUuLwmubaMHJFrpJbIF8bZbSKr1YSIJgZ4RU1CoDCVHOwqL6vA10kjzZb3B-oWztx7QSELoyK5xl6aHklvod1lhMObyZZCFEtapNmniNkbNyQB_xYzntbOJZ-cQwRvs3MAdZZGql8xDjJ3H4349gTVDgr58lB7VHnSqfaeZdYbCE9I9CdyrHRYktIYHwnVqVkOcainhFKEPKOPnL8tE_xWgmzmmivslEUmKoG0TApBzVzmpxlbpUKRSMFPfVyXkDynW4DJYU_OkSXYtZjFhI3gUSojMAABk-uS9gyoKFdZLVNdYYp8flG5XNbIqfBaBCmiUxJGYI2FFoeYYuqnJPFOINqtlh4jCc7BTYh_ScuqQYpmF6wKBE84IhJbg1SppiTWqltXU3OrCVdw50N4MfsEKDfdb0v-XUHzFsGSzni0fKdpUmBp0EpHsAdFFs9LmiJOk7uVU9PV6srDNAuHsUbvShYqt7uO_rdakQpjGBPsi8RcOfDykCDhutfXbFuDq9KVQO3F1er6Ihi1K2P0uOQBCsN2zbCNKKPERX62EZ0rEX9X7VvDOBYauDeEtoX8T9rbT4ku2F9fW401uGvKErpebpflyw7EaBaJA09bdtqFnR9Q9kQahpNB8rZlNaOr0Xrj7OB9OxvNd1vn79udho8cuXU2nyJu0EBhhIVwl-GE4BvjktvboEh3Qtk4vIl8vgam16Hq-d2hP2t8wODCwJkXjTox9BIMKo5ivVBx32t8Zm9JL2I-__1ZEw7KuckK1CJ1cqlfyqAbHAgfiPPGaB7BK7mBbLpmYXOedt8LTmcjOroqV0wTFZG-bcT9SZF7lZEy1xCB11V5hpihQk0Z9yK0utqiKcskD5K2PAIbRbpyN4fN2VGc6YJVYTkkDRNf8eVd35sqRNw8jta0aCp4IRbVW7lJttIJ-ARcrk0z8rVMlFpVn4Fl_FXNr0q7NipIrohdBjo3pO34aoSVdnRVAZzfmNKjEp-Xa7HQ0_q-bY7PtOr2hEIRbdQ0lpeQDvoMeeAHEhWokEtwqXHOaF3pcAV0PgL4jOpa0Uk6yahMebNESVtLKP0OWUy9xPVkfTAJBwmi2OdaFVhD9MPS08GpiLsvt7Rmprip62kXMXdwnLQxdTftrCp0RkfihpA6q0qWniJAAT2pJ6h820G7toRzKH1Fl0jXxCxBMwd0z7Zm0h1nvUtQ34-KvTyDQp-Ldz2MoseFcfRRHS_mgeky9zGzgexA9blfMa8FqrP4FJve95VaIiYmmfmY8aShBaKnHlK-dY5kCyJfKT2W7O7XnLzW3QH7tnOeZ1vN5Fr8y-Jl40wqV7e7tfPtZbZ2dr87681sucjHt2hfquXhb5CPvoA3X8-nxUOoCAMQQKLU3amoZl4LZPGyhvvNdj1bfJn9wylfXq12NSOqM1g_vtjsNt9n0-1uMXquDNlT7dDjY_qQWPpAzoP31PaG7SF64IT7-KnRHSdt5e4Eavy9MNvs6aMmzjxaZBBqVJ62NKITi33PoIzDqKhyDB8O30Diecesgf4Qh_7Tjef7ff8t_WgmD7PATxJFsXiyf9rtdKzBw-mpO2xZnV5v2O619u5w0Hb7XQ-5PfMwQMPe3js8-LK19CQfwJw8kCerZVmttjlomVa_1X30zCHaux42Ud_tmq7Z6LTwGdzUo1j4kYXHh_BJ8rCPjxEM-hDIo3wQycwB45Q-ijnkWU-_sRP2nS-rB8nvk2T2X8pSyYg">