[PATCH] D72827: clang-format: [JS] Handle keyword-named methods.
Martin Probst via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 16 02:54:32 PST 2020
mprobst created this revision.
mprobst added a reviewer: krasimir.
Herald added a project: clang.
Including `do`, `for`, and `while`, in addition to the previously
handled fields. The unit test explicitly uses methods, but this code
path handles both fields and methods.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D72827
Files:
clang/lib/Format/UnwrappedLineParser.cpp
clang/unittests/Format/FormatTestJS.cpp
Index: clang/unittests/Format/FormatTestJS.cpp
===================================================================
--- clang/unittests/Format/FormatTestJS.cpp
+++ clang/unittests/Format/FormatTestJS.cpp
@@ -343,6 +343,14 @@
" x: 'x'\n"
"};",
"const Axis = {for: 'for', x: 'x'};");
+ verifyFormat("class KeywordNamedMethods {\n"
+ " do() {\n"
+ " }\n"
+ " for() {\n"
+ " }\n"
+ " while() {\n"
+ " }\n"
+ "}\n");
}
TEST_F(FormatTestJS, ReservedWordsMethods) {
Index: clang/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- clang/lib/Format/UnwrappedLineParser.cpp
+++ clang/lib/Format/UnwrappedLineParser.cpp
@@ -1015,9 +1015,15 @@
return;
case tok::kw_for:
case tok::kw_while:
+ if (Style.Language == FormatStyle::LK_JavaScript && Line->MustBeDeclaration)
+ // field/method declaration.
+ break;
parseForOrWhileLoop();
return;
case tok::kw_do:
+ if (Style.Language == FormatStyle::LK_JavaScript && Line->MustBeDeclaration)
+ // field/method declaration.
+ break;
parseDoWhile();
return;
case tok::kw_switch:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72827.238442.patch
Type: text/x-patch
Size: 1287 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200116/475398e4/attachment.bin>
More information about the cfe-commits
mailing list