This patch makes ContinuationIndenter call breakProtrudingToken only if
NoLineBreak and NoLineBreakInOperand is false.
Previously, clang-format required two runs to converge on the following example with 24 columns:
Note that the second operand shouldn't be splitted according to NoLineBreakInOperand, but the
token breaker doesn't take that into account:
func(a, "long long long long", c);
After first run:
func(a, "long long " "long long", c);
After second run, where NoLineBreakInOperand is taken into account:
func(a, "long long " "long long", c);
With the patch, clang-format now obtains in one run:
func(a, "long long long" "long", c);
which is a better token split overall.
I think we assume here and in many other place that the stack is never empty. E.g. there is no similar check in l.847 above. So, I'd remove this here, too. In the long run, we probably want to have a class properly wrapping the Stack.