Security update for Core, with self-updated composer
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / stmt / class / anonymous.test
diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/class/anonymous.test b/vendor/nikic/php-parser/test/code/parser/stmt/class/anonymous.test
new file mode 100644 (file)
index 0000000..266d943
--- /dev/null
@@ -0,0 +1,195 @@
+Anonymous classes
+-----
+<?php
+
+new class {
+    public function test() {}
+};
+new class extends A implements B, C {};
+new class() {
+    public $foo;
+};
+new class($a, $b) extends A {
+    use T;
+};
+
+class A {
+    public function test() {
+        return new class($this) extends A {
+            const A = 'B';
+        };
+    }
+}
+-----
+array(
+    0: Expr_New(
+        class: Stmt_Class(
+            flags: 0
+            name: null
+            extends: null
+            implements: array(
+            )
+            stmts: array(
+                0: Stmt_ClassMethod(
+                    flags: MODIFIER_PUBLIC (1)
+                    byRef: false
+                    name: test
+                    params: array(
+                    )
+                    returnType: null
+                    stmts: array(
+                    )
+                )
+            )
+        )
+        args: array(
+        )
+    )
+    1: Expr_New(
+        class: Stmt_Class(
+            flags: 0
+            name: null
+            extends: Name(
+                parts: array(
+                    0: A
+                )
+            )
+            implements: array(
+                0: Name(
+                    parts: array(
+                        0: B
+                    )
+                )
+                1: Name(
+                    parts: array(
+                        0: C
+                    )
+                )
+            )
+            stmts: array(
+            )
+        )
+        args: array(
+        )
+    )
+    2: Expr_New(
+        class: Stmt_Class(
+            flags: 0
+            name: null
+            extends: null
+            implements: array(
+            )
+            stmts: array(
+                0: Stmt_Property(
+                    flags: MODIFIER_PUBLIC (1)
+                    props: array(
+                        0: Stmt_PropertyProperty(
+                            name: foo
+                            default: null
+                        )
+                    )
+                )
+            )
+        )
+        args: array(
+        )
+    )
+    3: Expr_New(
+        class: Stmt_Class(
+            flags: 0
+            name: null
+            extends: Name(
+                parts: array(
+                    0: A
+                )
+            )
+            implements: array(
+            )
+            stmts: array(
+                0: Stmt_TraitUse(
+                    traits: array(
+                        0: Name(
+                            parts: array(
+                                0: T
+                            )
+                        )
+                    )
+                    adaptations: array(
+                    )
+                )
+            )
+        )
+        args: array(
+            0: Arg(
+                value: Expr_Variable(
+                    name: a
+                )
+                byRef: false
+                unpack: false
+            )
+            1: Arg(
+                value: Expr_Variable(
+                    name: b
+                )
+                byRef: false
+                unpack: false
+            )
+        )
+    )
+    4: Stmt_Class(
+        flags: 0
+        name: A
+        extends: null
+        implements: array(
+        )
+        stmts: array(
+            0: Stmt_ClassMethod(
+                flags: MODIFIER_PUBLIC (1)
+                byRef: false
+                name: test
+                params: array(
+                )
+                returnType: null
+                stmts: array(
+                    0: Stmt_Return(
+                        expr: Expr_New(
+                            class: Stmt_Class(
+                                flags: 0
+                                name: null
+                                extends: Name(
+                                    parts: array(
+                                        0: A
+                                    )
+                                )
+                                implements: array(
+                                )
+                                stmts: array(
+                                    0: Stmt_ClassConst(
+                                        flags: 0
+                                        consts: array(
+                                            0: Const(
+                                                name: A
+                                                value: Scalar_String(
+                                                    value: B
+                                                )
+                                            )
+                                        )
+                                    )
+                                )
+                            )
+                            args: array(
+                                0: Arg(
+                                    value: Expr_Variable(
+                                        name: this
+                                    )
+                                    byRef: false
+                                    unpack: false
+                                )
+                            )
+                        )
+                    )
+                )
+            )
+        )
+    )
+)
\ No newline at end of file