Security update for Core, with self-updated composer
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / expr / ternaryAndCoalesce.test
diff --git a/vendor/nikic/php-parser/test/code/parser/expr/ternaryAndCoalesce.test b/vendor/nikic/php-parser/test/code/parser/expr/ternaryAndCoalesce.test
new file mode 100644 (file)
index 0000000..268935d
--- /dev/null
@@ -0,0 +1,149 @@
+Ternary operator
+-----
+<?php
+
+// ternary
+$a ? $b : $c;
+$a ?: $c;
+
+// precedence
+$a ? $b : $c ? $d : $e;
+$a ? $b : ($c ? $d : $e);
+
+// null coalesce
+$a ?? $b;
+$a ?? $b ?? $c;
+$a ?? $b ? $c : $d;
+$a && $b ?? $c;
+-----
+array(
+    0: Expr_Ternary(
+        cond: Expr_Variable(
+            name: a
+            comments: array(
+                0: // ternary
+            )
+        )
+        if: Expr_Variable(
+            name: b
+        )
+        else: Expr_Variable(
+            name: c
+        )
+        comments: array(
+            0: // ternary
+        )
+    )
+    1: Expr_Ternary(
+        cond: Expr_Variable(
+            name: a
+        )
+        if: null
+        else: Expr_Variable(
+            name: c
+        )
+    )
+    2: Expr_Ternary(
+        cond: Expr_Ternary(
+            cond: Expr_Variable(
+                name: a
+                comments: array(
+                    0: // precedence
+                )
+            )
+            if: Expr_Variable(
+                name: b
+            )
+            else: Expr_Variable(
+                name: c
+            )
+            comments: array(
+                0: // precedence
+            )
+        )
+        if: Expr_Variable(
+            name: d
+        )
+        else: Expr_Variable(
+            name: e
+        )
+        comments: array(
+            0: // precedence
+        )
+    )
+    3: Expr_Ternary(
+        cond: Expr_Variable(
+            name: a
+        )
+        if: Expr_Variable(
+            name: b
+        )
+        else: Expr_Ternary(
+            cond: Expr_Variable(
+                name: c
+            )
+            if: Expr_Variable(
+                name: d
+            )
+            else: Expr_Variable(
+                name: e
+            )
+        )
+    )
+    4: Expr_BinaryOp_Coalesce(
+        left: Expr_Variable(
+            name: a
+            comments: array(
+                0: // null coalesce
+            )
+        )
+        right: Expr_Variable(
+            name: b
+        )
+        comments: array(
+            0: // null coalesce
+        )
+    )
+    5: Expr_BinaryOp_Coalesce(
+        left: Expr_Variable(
+            name: a
+        )
+        right: Expr_BinaryOp_Coalesce(
+            left: Expr_Variable(
+                name: b
+            )
+            right: Expr_Variable(
+                name: c
+            )
+        )
+    )
+    6: Expr_Ternary(
+        cond: Expr_BinaryOp_Coalesce(
+            left: Expr_Variable(
+                name: a
+            )
+            right: Expr_Variable(
+                name: b
+            )
+        )
+        if: Expr_Variable(
+            name: c
+        )
+        else: Expr_Variable(
+            name: d
+        )
+    )
+    7: Expr_BinaryOp_Coalesce(
+        left: Expr_BinaryOp_BooleanAnd(
+            left: Expr_Variable(
+                name: a
+            )
+            right: Expr_Variable(
+                name: b
+            )
+        )
+        right: Expr_Variable(
+            name: c
+        )
+    )
+)
\ No newline at end of file