diff options
author | Daniel Jasper <djasper@google.com> | 2017-03-01 19:47:28 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2017-03-01 19:47:28 +0000 |
commit | 893b8adca2b7bbd25a0e6735cd4f20c3e8087b49 (patch) | |
tree | 01b89f7dc483f5f8d5ae660831258c9afdccb563 | |
parent | 8932d6489194af95714c8d08c44503465c85d2c2 (diff) | |
download | bcm5719-llvm-893b8adca2b7bbd25a0e6735cd4f20c3e8087b49.tar.gz bcm5719-llvm-893b8adca2b7bbd25a0e6735cd4f20c3e8087b49.zip |
clang-format: [JS] Properly format object literals with shorthands.
Before:
return {
a,
b: 'b', c,
};
After:
return {
a,
b: 'b',
c,
};
llvm-svn: 296664
-rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 7 | ||||
-rw-r--r-- | clang/unittests/Format/FormatTestJS.cpp | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 341421e2228..42c92c4eca9 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -1517,13 +1517,14 @@ private: return prec::Conditional; if (NextNonComment && NextNonComment->is(tok::colon) && NextNonComment->is(TT_DictLiteral)) - return prec::Comma; + return prec::Assignment; + if (Current->is(TT_JsComputedPropertyName)) + return prec::Assignment; if (Current->is(TT_LambdaArrow)) return prec::Comma; if (Current->is(TT_JsFatArrow)) return prec::Assignment; - if (Current->isOneOf(tok::semi, TT_InlineASMColon, TT_SelectorName, - TT_JsComputedPropertyName) || + if (Current->isOneOf(tok::semi, TT_InlineASMColon, TT_SelectorName) || (Current->is(tok::comment) && NextNonComment && NextNonComment->is(TT_SelectorName))) return 0; diff --git a/clang/unittests/Format/FormatTestJS.cpp b/clang/unittests/Format/FormatTestJS.cpp index 88f081326d7..f45ec7356b3 100644 --- a/clang/unittests/Format/FormatTestJS.cpp +++ b/clang/unittests/Format/FormatTestJS.cpp @@ -278,6 +278,11 @@ TEST_F(FormatTestJS, ContainerLiterals) { " aaa,\n" " aaa,\n" "};"); + verifyFormat("return {\n" + " a,\n" + " b: 'b',\n" + " c,\n" + "};"); } TEST_F(FormatTestJS, MethodsInObjectLiterals) { |