[PATCH] D32478: [clang-format] Fix AlignOperands when BreakBeforeBinaryOperators is set
Daniel Jasper via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri May 26 01:00:39 PDT 2017
djasper added a comment.
In https://reviews.llvm.org/D32478#759347, @Typz wrote:
> In https://reviews.llvm.org/D32478#758258, @djasper wrote:
>
> > When you say "this doesn't happen in tests", do you mean this never happens when there are parentheses around the expression?
>
>
> By 'test' I meant 'conditional construct' : it happens when there are parentheses around the expression, but it does not happen when these parentheses are the parentheses from a `if (...)`
Are you sure? From reading the code, it seems that this happens exactly after "=" and "return". What's the behavior for function calls?
function(aaaaaaa //
+ bbbbb);
Or for expressions with just parens?
int a = (aaaaaa //
+ bbbbbb);
What if doing this would violate the ContinuationIndentWidth?
T t = aaaaa //
&& bbbbb;
================
Comment at: lib/Format/ContinuationIndenter.cpp:759
+ return State.Stack.back().Indent - Current.Tok.getLength()
+ - Current.SpacesRequiredBefore;
if (State.Stack.back().Indent == State.FirstIndent && PreviousNonComment &&
----------------
Fix style.
================
Comment at: lib/Format/ContinuationIndenter.cpp:949
+ Previous->is(tok::kw_return)))
+ NewParenState.UnindentOperator = true;
----------------
I am not yet convinced you need a new flag in ParenState here. I guess you need it because the operators can have varying length and so you cannot just change LastSpace here?
https://reviews.llvm.org/D32478
More information about the cfe-commits
mailing list