<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">