[PATCH] D20737: clang-format: [JS] fix async parsing.
Martin Probst via cfe-commits
cfe-commits at lists.llvm.org
Sun May 29 07:47:41 PDT 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL271184: clang-format: [JS] fix async parsing. (authored by mprobst).
Changed prior to commit:
http://reviews.llvm.org/D20737?vs=58809&id=58915#toc
Repository:
rL LLVM
http://reviews.llvm.org/D20737
Files:
cfe/trunk/lib/Format/UnwrappedLineParser.cpp
cfe/trunk/unittests/Format/FormatTestJS.cpp
Index: cfe/trunk/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- cfe/trunk/lib/Format/UnwrappedLineParser.cpp
+++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp
@@ -1013,7 +1013,9 @@
// Parse function literal unless 'function' is the first token in a line
// in which case this should be treated as a free-standing function.
if (Style.Language == FormatStyle::LK_JavaScript &&
- FormatTok->isOneOf(Keywords.kw_async, Keywords.kw_function) &&
+ (FormatTok->is(Keywords.kw_function) ||
+ FormatTok->startsSequence(Keywords.kw_async,
+ Keywords.kw_function)) &&
Line->Tokens.size() > 0) {
tryToParseJSFunction();
break;
@@ -1200,7 +1202,8 @@
}
void UnwrappedLineParser::tryToParseJSFunction() {
- assert(FormatTok->isOneOf(Keywords.kw_async, Keywords.kw_function));
+ assert(FormatTok->is(Keywords.kw_function) ||
+ FormatTok->startsSequence(Keywords.kw_async, Keywords.kw_function));
if (FormatTok->is(Keywords.kw_async))
nextToken();
// Consume "function".
@@ -1254,7 +1257,8 @@
// replace this by using parseAssigmentExpression() inside.
do {
if (Style.Language == FormatStyle::LK_JavaScript) {
- if (FormatTok->isOneOf(Keywords.kw_async, Keywords.kw_function)) {
+ if (FormatTok->is(Keywords.kw_function) ||
+ FormatTok->startsSequence(Keywords.kw_async, Keywords.kw_function)) {
tryToParseJSFunction();
continue;
}
@@ -1352,7 +1356,8 @@
break;
case tok::identifier:
if (Style.Language == FormatStyle::LK_JavaScript &&
- FormatTok->isOneOf(Keywords.kw_async, Keywords.kw_function))
+ (FormatTok->is(Keywords.kw_function) ||
+ FormatTok->startsSequence(Keywords.kw_async, Keywords.kw_function)))
tryToParseJSFunction();
else
nextToken();
Index: cfe/trunk/unittests/Format/FormatTestJS.cpp
===================================================================
--- cfe/trunk/unittests/Format/FormatTestJS.cpp
+++ cfe/trunk/unittests/Format/FormatTestJS.cpp
@@ -354,6 +354,10 @@
verifyFormat("class X {\n"
" async asyncMethod() { return fetch(1); }\n"
"}");
+ verifyFormat("function initialize() {\n"
+ " // Comment.\n"
+ " return async.then();\n"
+ "}\n");
}
TEST_F(FormatTestJS, ArrayLiterals) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20737.58915.patch
Type: text/x-patch
Size: 2501 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160529/ee58ceae/attachment.bin>
More information about the cfe-commits
mailing list