r302893 - clang-format: [JS] support non-null assertions after all identifiers.

Martin Probst via cfe-commits cfe-commits at lists.llvm.org
Fri May 12 06:00:34 PDT 2017


Author: mprobst
Date: Fri May 12 08:00:33 2017
New Revision: 302893

URL: http://llvm.org/viewvc/llvm-project?rev=302893&view=rev
Log:
clang-format: [JS] support non-null assertions after all identifiers.

Summary:
Previously:
    x = namespace !;

Now:
    x = namespace!;

Reviewers: djasper

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D33113

Modified:
    cfe/trunk/lib/Format/TokenAnnotator.cpp
    cfe/trunk/unittests/Format/FormatTestJS.cpp

Modified: cfe/trunk/lib/Format/TokenAnnotator.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/TokenAnnotator.cpp?rev=302893&r1=302892&r2=302893&view=diff
==============================================================================
--- cfe/trunk/lib/Format/TokenAnnotator.cpp (original)
+++ cfe/trunk/lib/Format/TokenAnnotator.cpp Fri May 12 08:00:33 2017
@@ -1034,7 +1034,8 @@ private:
     if (Style.Language == FormatStyle::LK_JavaScript) {
       if (Current.is(tok::exclaim)) {
         if (Current.Previous &&
-            (Current.Previous->isOneOf(tok::identifier, tok::r_paren,
+            (Current.Previous->Tok.getIdentifierInfo() ||
+             Current.Previous->isOneOf(tok::identifier, tok::r_paren,
                                        tok::r_square, tok::r_brace) ||
              Current.Previous->Tok.isLiteral())) {
           Current.Type = TT_JsNonNullAssertion;

Modified: cfe/trunk/unittests/Format/FormatTestJS.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTestJS.cpp?rev=302893&r1=302892&r2=302893&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTestJS.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTestJS.cpp Fri May 12 08:00:33 2017
@@ -1799,6 +1799,7 @@ TEST_F(FormatTestJS, NonNullAssertionOpe
       "            .foo()!\n"
       "            .foo()!;\n",
       getGoogleJSStyleWithColumns(20));
+  verifyFormat("let x = namespace!;\n");
 }
 
 TEST_F(FormatTestJS, Conditional) {




More information about the cfe-commits mailing list