[PATCH] D151761: clang-format: Add AlignConsecutiveShortCaseStatements

MyDeveloperDay via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 7 02:29:00 PDT 2023


MyDeveloperDay added a comment.

In D151761#4400056 <https://reviews.llvm.org/D151761#4400056>, @galenelias wrote:

> In D151761#4394758 <https://reviews.llvm.org/D151761#4394758>, @MyDeveloperDay wrote:
>
>> did you consider a case where the case falls through? (i.e. no return)
>>
>>   "case log::info :    return \"info\";\n"
>>   "case log::warning :\n"
>>   "default :           return \"default\";\n"
>
> That's a great point.  I didn't really consider this, and currently this particular case won't align the case statements if they have an empty case block, however if you had some tokens (e.g. `// fallthrough`) it would.  It's not immediately clear to me what the expectation would be.  I guess to align as if there was an invisible trailing token, but it's a bit awkward if the cases missing a body are the 'long' cases that push out the alignment.  Also, I don't think it's possible to use `AlignTokens` and get this behavior, as there is no token on those lines to align, so it's not straightforward to handle.  I guess I'll be curious to see if there is feedback or cases where this behavior is desired, and if so, I can look into adding that functionality later.  Since right now it would involve a completely custom AlignTokens clone, my preference would be to just leave this as not supported.

Can you add a unit test with a // fallthough comment, and a /* FALLTHROUGH */ and [[fallthrough]] so we know whats going to happen in those cases at a minimum.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D151761/new/

https://reviews.llvm.org/D151761



More information about the cfe-commits mailing list