forked from OSchip/llvm-project
clang-format: [JS] Let fat arrows have 'Assignment' precedence.
This is a more correct representation than using "Equality" introduced in r238942 which was a quick fix to solve an actual regression. According to the typescript spec, arrows behave like "low-precedence" assignments. Before: var a = a.aaaaaaa((a: a) => aaaaaaaaaaaaaaaaaaaaa(bbbbbbbbb) && aaaaaaaaaaaaaaaaaaaaa(bbbbbbb)); After: var a = a.aaaaaaa((a: a) => aaaaaaaaaaaaaaaaaaaaa(bbbbbbbbb) && aaaaaaaaaaaaaaaaaaaaa(bbbbbbb)); llvm-svn: 239137
This commit is contained in:
parent
b4c562de87
commit
3b0f304517
|
@ -1326,7 +1326,7 @@ private:
|
|||
if (Current->is(TT_LambdaArrow))
|
||||
return prec::Comma;
|
||||
if (Current->is(TT_JsFatArrow))
|
||||
return prec::Equality;
|
||||
return prec::Assignment;
|
||||
if (Current->isOneOf(tok::semi, TT_InlineASMColon, TT_SelectorName,
|
||||
TT_JsComputedPropertyName) ||
|
||||
(Current->is(tok::comment) && NextNonComment &&
|
||||
|
|
|
@ -488,8 +488,15 @@ TEST_F(FormatTestJS, ArrowFunctions) {
|
|||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaa:\n"
|
||||
" (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
|
||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) =>\n"
|
||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
|
||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
|
||||
"};");
|
||||
verifyFormat(
|
||||
"var a = a.aaaaaaa((a: a) => aaaaaaaaaaaaaaaaaaaaa(bbbbbbbbb) &&\n"
|
||||
" aaaaaaaaaaaaaaaaaaaaa(bbbbbbb));");
|
||||
verifyFormat(
|
||||
"var a = a.aaaaaaa((a: a) => aaaaaaaaaaaaaaaaaaaaa(bbbbbbbbb) ?\n"
|
||||
" aaaaaaaaaaaaaaaaaaaaa(bbbbbbb) :\n"
|
||||
" aaaaaaaaaaaaaaaaaaaaa(bbbbbbb));");
|
||||
|
||||
// FIXME: This is bad, we should be wrapping before "() => {".
|
||||
verifyFormat("someFunction(() => {\n"
|
||||
|
|
Loading…
Reference in New Issue