[clang-tidy] readability-else-after-return

Hi folks,
so recently I was testing clang-tidy, and I had a problem with the check readability-else-after-return:

  1. running git-clang-format after applying transformation doesn’t format everything, because this check only removes one line (+ braces), which doesn’t affect other lines, which leeds to wrong identation.
  2. It only transform one else at one time so for example for code like this:

if (multilevel && isMultilevelPolicyDescendable(policy, getDepth()))
{
return …

}
else if (size() > 1) // it was only able to remove this one
{
return …
}
else
{
if (policy.type == ClassificationType::EXTRA_PARAMS)
return
else
return
}

Did you know about those problems? I was talking with Nick (cc) and he was surprised that not all formatting can be done by just applying clang-format-diff.

Piotr

Yes, we are aware. The check was implemented mostly for a clang-tidy tutorial. It could certainly use more love.

As for the clang-format issue, I have recently updated clang-format to support this case better in general (just removing or adding braces). Not sure whether clang-format-diff.py can make use of this yet.