From 9f4c9d418f549b45b654eb98cacc7c40cca8e522 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Sun, 7 Feb 2016 22:17:13 +0000 Subject: [PATCH] clang-format: [JS] Don't count shortened object literals as blocks. Before: f({a}, () => { g(); // }); After: f({a}, () => { g(); // }); llvm-svn: 260060 --- clang/lib/Format/TokenAnnotator.cpp | 2 +- clang/unittests/Format/FormatTestJS.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 2089d9d3165f..a53cceb9a30f 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -423,7 +423,7 @@ private: } void updateParameterCount(FormatToken *Left, FormatToken *Current) { - if (Current->is(tok::l_brace) && !Current->is(TT_DictLiteral)) + if (Current->is(tok::l_brace) && Current->BlockKind == BK_Block) ++Left->BlockParameterCount; if (Current->is(tok::comma)) { ++Left->ParameterCount; diff --git a/clang/unittests/Format/FormatTestJS.cpp b/clang/unittests/Format/FormatTestJS.cpp index 7f25d5921b3a..7fad83aab12a 100644 --- a/clang/unittests/Format/FormatTestJS.cpp +++ b/clang/unittests/Format/FormatTestJS.cpp @@ -200,6 +200,11 @@ TEST_F(FormatTestJS, ContainerLiterals) { " b: 2,\n" " [c]: 3,\n" "};"); + + // Object literals can leave out labels. + verifyFormat("f({a}, () => {\n" + " g(); //\n" + "});"); } TEST_F(FormatTestJS, MethodsInObjectLiterals) {