forked from OSchip/llvm-project
clang-format: [JS] no ASI on `import {x as\n y}`.
Summary: ASI did not handle the ES6 `as` operator correctly. Reviewers: djasper Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D20817 llvm-svn: 271401
This commit is contained in:
parent
081f176a62
commit
48622090c7
|
@ -245,7 +245,7 @@ private:
|
|||
SourceLocation SymbolsEnd = Reference.Symbols.back().Range.getEnd();
|
||||
Buffer += getSourceText(Reference.Range.getBegin(), SymbolsStart);
|
||||
// ... then the references in order ...
|
||||
for (auto *I = Symbols.begin(), *E = Symbols.end(); I != E; ++I) {
|
||||
for (auto I = Symbols.begin(), E = Symbols.end(); I != E; ++I) {
|
||||
if (I != Symbols.begin())
|
||||
Buffer += ",";
|
||||
Buffer += getSourceText(I->Range);
|
||||
|
|
|
@ -668,11 +668,11 @@ static bool mustBeJSIdent(const AdditionalKeywords &Keywords,
|
|||
// FIXME: This returns true for C/C++ keywords like 'struct'.
|
||||
return FormatTok->is(tok::identifier) &&
|
||||
(FormatTok->Tok.getIdentifierInfo() == nullptr ||
|
||||
!FormatTok->isOneOf(Keywords.kw_in, Keywords.kw_of, Keywords.kw_async,
|
||||
Keywords.kw_await, Keywords.kw_yield,
|
||||
Keywords.kw_finally, Keywords.kw_function,
|
||||
Keywords.kw_import, Keywords.kw_is,
|
||||
Keywords.kw_let, Keywords.kw_var,
|
||||
!FormatTok->isOneOf(Keywords.kw_in, Keywords.kw_of, Keywords.kw_as,
|
||||
Keywords.kw_async, Keywords.kw_await,
|
||||
Keywords.kw_yield, Keywords.kw_finally,
|
||||
Keywords.kw_function, Keywords.kw_import,
|
||||
Keywords.kw_is, Keywords.kw_let, Keywords.kw_var,
|
||||
Keywords.kw_abstract, Keywords.kw_extends,
|
||||
Keywords.kw_implements, Keywords.kw_instanceof,
|
||||
Keywords.kw_interface, Keywords.kw_throws));
|
||||
|
|
|
@ -1010,6 +1010,9 @@ TEST_F(FormatTestJS, Modules) {
|
|||
"} from 'some/module.js';");
|
||||
verifyFormat("import {X, Y,} from 'some/module.js';");
|
||||
verifyFormat("import {X as myLocalX, Y as myLocalY} from 'some/module.js';");
|
||||
// Ensure Automatic Semicolon Insertion does not break on "as\n".
|
||||
verifyFormat("import {X as myX} from 'm';", "import {X as\n"
|
||||
" myX} from 'm';");
|
||||
verifyFormat("import * as lib from 'some/module.js';");
|
||||
verifyFormat("var x = {import: 1};\nx.import = 2;");
|
||||
|
||||
|
|
Loading…
Reference in New Issue