summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2017-03-01 19:47:28 +0000
committerDaniel Jasper <djasper@google.com>2017-03-01 19:47:28 +0000
commit893b8adca2b7bbd25a0e6735cd4f20c3e8087b49 (patch)
tree01b89f7dc483f5f8d5ae660831258c9afdccb563
parent8932d6489194af95714c8d08c44503465c85d2c2 (diff)
downloadbcm5719-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.cpp7
-rw-r--r--clang/unittests/Format/FormatTestJS.cpp5
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) {
OpenPOWER on IntegriCloud