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

    <tr>
        <th>Summary</th>
        <td>
            clang-format wrongly indents Java code after a switch returning value and variable assignment
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-format
      </td>
    </tr>

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

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

<pre>
    The result of `clang-format -i file.java`:
```
    if (image == null)
    {
 @DrawableRes
      int drawableRes = switch (mode)
      {
 case LocationState.PENDING_POSITION -> R.drawable.ic_menu_location_pending;
 case LocationState.NOT_FOLLOW_NO_POSITION -> R.drawable.ic_location_off;
        case LocationState.NOT_FOLLOW -> R.drawable.ic_not_follow;
        case LocationState.FOLLOW -> R.drawable.ic_follow;
        case LocationState.FOLLOW_AND_ROTATE -> R.drawable.ic_follow_and_rotate;
        default -> throw new IllegalArgumentException("Invalid button mode: " + mode);
      };
 image = ResourcesCompat.getDrawable(resources, drawableRes, context.getTheme());
      mIcons.put(mode, image);
 }

```

```
clang-format --version
clang-format version 20.1.8
```

```
cat .clang-format         
# Configuration file for clang-format, based on docs/CPP_STYLE.md.
BasedOnStyle: Google

AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignArrayOfStructures: Right
AlignConsecutiveMacros: AcrossEmptyLinesAndComments
AlignEscapedNewlines: LeftWithLastLine
AlignOperands: AlignAfterOperator
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
BraceWrapping:
  AfterCaseLabel: true
  AfterClass: true
  AfterControlStatement: Always
  AfterEnum: true
  AfterExternBlock: true
  AfterFunction: true
  AfterNamespace: true
  AfterObjCDeclaration: true
  AfterStruct: true
  AfterUnion: true
 BeforeCatch: true
  BeforeElse: true
  BeforeLambdaBody: true
 BeforeWhile: true
  SplitEmptyFunction: false
  SplitEmptyNamespace: false
  SplitEmptyRecord: false
BinPackArguments: true
BinPackParameters: true
BreakAfterJavaFieldAnnotations: true
BreakBeforeBraces: Custom
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
ColumnLimit: 120
ConstructorInitializerIndentWidth: 2
ContinuationIndentWidth: 4
DerivePointerAlignment: false
EmptyLineBeforeAccessModifier: Always
IncludeBlocks: Preserve
IndentAccessModifiers: false
IndentCaseLabels: false
IndentExternBlock: NoIndent
InsertBraces: false
InsertNewlineAtEOF: true
LambdaBodyIndentation: OuterScope
PackConstructorInitializers: CurrentLine
PointerAlignment: Middle
RemoveBracesLLVM: true
QualifierAlignment: Right
SpacesInContainerLiterals: false
Standard: Latest
TabWidth: 2

---
Language: Java
AllowShortFunctionsOnASingleLine: Empty
```

>From Organic Maps code https://github.com/organicmaps/organicmaps
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUV99v6joS_mvCiwVKQynwwEP4dcQqJWxht9onNHEmwaeOHdkOnO5ff2WHAIGenntRpSaebz6PZ76ZJKA1ywXixBtMvcG8A5U5SDVJmEwVCPbRSWT6OdkdkCjUFTdEZsR78SkHkXczqQowpMtIxjj2fsIRvBff64eeH9qL-s8PCSGEZcQLRqyAHInXn3v9OREV514wPgO84dReec_-XMEJEo5vqM82QpgwJL2uWwqiT8zQg6UtZIpXpgsXBY0kkhQMk2JrwGBvs1jPV-sf-028Xe1W8Zp0vf6CvPUa7h6j-wJFtednt32JImUi9_q_o1zHu_0yjqL4fb-OvyW-cMosO_Odf9_SfkUlpNlnknN5-iPR70n-EcE-XM_3b_Eu3C1-z7UHke6VtG5t2hQzsPJxnuag5IkIPJEV55gDD1VeFSjM4hfF0m7sBSMvCFbiCJylJKmMkYK4KvdD4gUB8YIpaap-s5E3nJ9vL0ojb6hlpSjqmSxKML0cTaMwLxipxuoFs1uF2VsqhcFfzmN3wAJdVOO7LYsVlUL3yspchDird78CbVj-fVfc3bZbqntEpW0i7gznZRL4vafe6A-MYEiv5d38LDDok5kUGcsr5WrtephkUpFbF3uYBDSmRAqSSqq9YDnbbPbb3f-iRa9Ie54fTq09FlvzyV19fkiZc6zjCSlFrV9lyjKGKs4yjcZiuoE1cpaLMDOo4hLFVAH9qK3OcAEoBZ9xtjWqoqZSqC3ijeUH0yBmUmiklWFHfAWqpEOE9kIvitJ8RkygDkU6k4VVmW78FppCiekaT9wirFeEmXln5hCBNtatgcYlKhCpvkTXhK3ASOVQXJ62B6nMlEv6oWMRbpnIOTqWfkhcJC3gDDRGkCB_BBtVYQu7rAS1VXqErgRv4mzAq8w1rjvrA36NR2wHHElZPuIy4NrS2rLgu4KydFMwdMJ3p7_EfxNxY-Kg9RfLUhgl-SW6Opsn-NRXzEJUxaPn4pdBJVxqH41Nch4tayhQl0Dx0RQnP2dzpBxq-T8CasE9rv9H3MGnmEmFMzD00ELX6wubxsflCIokhalMPx-p3g-Mt322JWfGKej2rE2Jbu2tE38FeEMqVdqqMBMboB_NEL6t29m0AQUFGlQtm0L4cBn5FxxhyZCnoRB29lud3gPrkzkxOdus0kYWjdV2sEu3VCvBDAPO_n_e7ZxdWRTQoFfigIoZEBQjps0jaiZ5VYiIFcwZnwLfLX61x0qkKMw7S40rXlADDROVO8ed-dnzwzkqdsSNZMKgcrOgkXKT0MvQqaNqz8CW5leC8irFemRYy0ahRnVEZ7Nbt5317TY14DpFHm13XbOW9bKza1TmWo6rn10_T8TQLOLlTSGvmq15Lo0TV7ZfqCwtygrmm3rOKqVQNMP1qzS-sjR1z483LOTxrJko-u_rTSj_roC7jLQ8m6fC1jaAXtkHgwEmUEXMoIJ2irYGRAp1K0RgUFvPHSQtLXh-2O123dlFXtmHej8kVu9_czo3U__uMb1UsiCxykEwSl6h1ITKFMnBmNLG6AVLL1jmzByqpEdl4QVLWYMLKHX7rpNO-um4P4YOTp6Gg35_9DIcDTuHSTDyR8kwgQzHfjZ-6mc-jgZJkviBn9ARYIdNAj8Y-MPg-Wk86PvD3micZckQs-QlfX4epeA9-1gA4z3Oj0VPqrzDtK5w8jTwB_6ww53q3JdDELRfGgL7LaEm1q-bVLn2nn3OtNFXJsMMx0nr7eSkpMj5J2FOXNqluc4L2ClDoHnjV2gqJZjIyRF4hQRESo6gmH11I_UXjVVEp1J88k1KbSznf91SyZ9IjRcs3RFtjs-nPE6CvwIAAP__noFdvg">