]> granicus.if.org Git - clang/commitdiff
clang-format: [JS] space between ! assert and in.
authorMartin Probst <martin@probst.io>
Fri, 24 Nov 2017 17:04:40 +0000 (17:04 +0000)
committerMartin Probst <martin@probst.io>
Fri, 24 Nov 2017 17:04:40 +0000 (17:04 +0000)
Summary:
Before:
    x = y!in z;
After:
    x = y! in z;

Reviewers: djasper

Subscribers: klimek

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@318957 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTestJS.cpp

index 0e2e8a8374d3cefa5007e13beba9d2d7076625f6..1962ab2ab99c279606552a63c840da3eede26aba 100644 (file)
@@ -2433,8 +2433,9 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line,
       return false;
     if (Right.is(TT_JsNonNullAssertion))
       return false;
-    if (Left.is(TT_JsNonNullAssertion) && Right.is(Keywords.kw_as))
-      return true; // "x! as string"
+    if (Left.is(TT_JsNonNullAssertion) &&
+        Right.isOneOf(Keywords.kw_as, Keywords.kw_in))
+      return true; // "x! as string", "x! in y"
   } else if (Style.Language == FormatStyle::LK_Java) {
     if (Left.is(tok::r_square) && Right.is(tok::l_brace))
       return true;
index d9176599fb73864d6f07954a8ec8bef9f5180c88..b8c81d14f4cd6a2fe9b58c2c4dbb2817ae16fea0 100644 (file)
@@ -1908,6 +1908,7 @@ TEST_F(FormatTestJS, CastSyntax) {
   verifyFormat("x = x as {a: string};");
   verifyFormat("x = x as (string);");
   verifyFormat("x = x! as (string);");
+  verifyFormat("x = y! in z;");
   verifyFormat("var x = something.someFunction() as\n"
                "    something;",
                getGoogleJSStyleWithColumns(40));