Added DSL support for static if & switch statements

Change-Id: If11443997ae29266bf46da77c1e4f9583fa3f5a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/402577
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
diff --git a/tests/SkSLDSLTest.cpp b/tests/SkSLDSLTest.cpp
index de3b640..8d2ae37 100644
--- a/tests/SkSLDSLTest.cpp
+++ b/tests/SkSLDSLTest.cpp
@@ -1272,6 +1272,9 @@
     Statement y = If(a > b, a -= b, b -= a);
     EXPECT_EQUAL(y, "if ((a > b)) (a -= b); else (b -= a);");
 
+    Statement z = StaticIf(a > b, a -= b, b -= a);
+    EXPECT_EQUAL(z, "@if ((a > b)) (a -= b); else (b -= a);");
+
     {
         ExpectError error(r, "error: expected 'bool', but found 'float'\n");
         If(a + b, a -= b).release();
@@ -1325,6 +1328,21 @@
         }
     )");
 
+    Statement y = StaticSwitch(b,
+        Case(0, a = 0, Break()),
+        Case(1, a = 1, Continue()),
+        Case(2, a = 2  /*Fallthrough*/),
+        Default(Discard())
+    );
+    EXPECT_EQUAL(y, R"(
+        @switch (b) {
+            case 0: (a = 0.0); break;
+            case 1: (a = 1.0); continue;
+            case 2: (a = 2.0);
+            default: discard;
+        }
+    )");
+
     EXPECT_EQUAL(Switch(b),
                 "switch (b) {}");