annotate vendor/nikic/php-parser/test/code/parser/stmt/class/anonymous.test @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 Anonymous classes
Chris@0 2 -----
Chris@0 3 <?php
Chris@0 4
Chris@0 5 new class {
Chris@0 6 public function test() {}
Chris@0 7 };
Chris@0 8 new class extends A implements B, C {};
Chris@0 9 new class() {
Chris@0 10 public $foo;
Chris@0 11 };
Chris@0 12 new class($a, $b) extends A {
Chris@0 13 use T;
Chris@0 14 };
Chris@0 15
Chris@0 16 class A {
Chris@0 17 public function test() {
Chris@0 18 return new class($this) extends A {
Chris@0 19 const A = 'B';
Chris@0 20 };
Chris@0 21 }
Chris@0 22 }
Chris@0 23 -----
Chris@0 24 array(
Chris@13 25 0: Stmt_Expression(
Chris@13 26 expr: Expr_New(
Chris@13 27 class: Stmt_Class(
Chris@13 28 flags: 0
Chris@13 29 name: null
Chris@13 30 extends: null
Chris@13 31 implements: array(
Chris@0 32 )
Chris@13 33 stmts: array(
Chris@13 34 0: Stmt_ClassMethod(
Chris@13 35 flags: MODIFIER_PUBLIC (1)
Chris@13 36 byRef: false
Chris@13 37 name: Identifier(
Chris@13 38 name: test
Chris@13 39 )
Chris@13 40 params: array(
Chris@13 41 )
Chris@13 42 returnType: null
Chris@13 43 stmts: array(
Chris@0 44 )
Chris@0 45 )
Chris@0 46 )
Chris@0 47 )
Chris@13 48 args: array(
Chris@13 49 )
Chris@0 50 )
Chris@0 51 )
Chris@13 52 1: Stmt_Expression(
Chris@13 53 expr: Expr_New(
Chris@13 54 class: Stmt_Class(
Chris@13 55 flags: 0
Chris@13 56 name: null
Chris@13 57 extends: Name(
Chris@13 58 parts: array(
Chris@13 59 0: A
Chris@13 60 )
Chris@13 61 )
Chris@13 62 implements: array(
Chris@13 63 0: Name(
Chris@13 64 parts: array(
Chris@13 65 0: B
Chris@13 66 )
Chris@13 67 )
Chris@13 68 1: Name(
Chris@13 69 parts: array(
Chris@13 70 0: C
Chris@13 71 )
Chris@13 72 )
Chris@13 73 )
Chris@13 74 stmts: array(
Chris@0 75 )
Chris@0 76 )
Chris@13 77 args: array(
Chris@0 78 )
Chris@13 79 )
Chris@13 80 )
Chris@13 81 2: Stmt_Expression(
Chris@13 82 expr: Expr_New(
Chris@13 83 class: Stmt_Class(
Chris@13 84 flags: 0
Chris@13 85 name: null
Chris@13 86 extends: null
Chris@13 87 implements: array(
Chris@13 88 )
Chris@13 89 stmts: array(
Chris@13 90 0: Stmt_Property(
Chris@13 91 flags: MODIFIER_PUBLIC (1)
Chris@17 92 type: null
Chris@13 93 props: array(
Chris@13 94 0: Stmt_PropertyProperty(
Chris@13 95 name: VarLikeIdentifier(
Chris@13 96 name: foo
Chris@13 97 )
Chris@13 98 default: null
Chris@0 99 )
Chris@0 100 )
Chris@0 101 )
Chris@13 102 )
Chris@13 103 )
Chris@13 104 args: array(
Chris@13 105 )
Chris@13 106 )
Chris@13 107 )
Chris@13 108 3: Stmt_Expression(
Chris@13 109 expr: Expr_New(
Chris@13 110 class: Stmt_Class(
Chris@13 111 flags: 0
Chris@13 112 name: null
Chris@13 113 extends: Name(
Chris@13 114 parts: array(
Chris@13 115 0: A
Chris@13 116 )
Chris@13 117 )
Chris@13 118 implements: array(
Chris@13 119 )
Chris@13 120 stmts: array(
Chris@13 121 0: Stmt_TraitUse(
Chris@13 122 traits: array(
Chris@13 123 0: Name(
Chris@13 124 parts: array(
Chris@13 125 0: T
Chris@13 126 )
Chris@13 127 )
Chris@13 128 )
Chris@13 129 adaptations: array(
Chris@13 130 )
Chris@0 131 )
Chris@0 132 )
Chris@0 133 )
Chris@13 134 args: array(
Chris@13 135 0: Arg(
Chris@13 136 value: Expr_Variable(
Chris@13 137 name: a
Chris@13 138 )
Chris@13 139 byRef: false
Chris@13 140 unpack: false
Chris@0 141 )
Chris@13 142 1: Arg(
Chris@13 143 value: Expr_Variable(
Chris@13 144 name: b
Chris@13 145 )
Chris@13 146 byRef: false
Chris@13 147 unpack: false
Chris@0 148 )
Chris@0 149 )
Chris@0 150 )
Chris@0 151 )
Chris@0 152 4: Stmt_Class(
Chris@0 153 flags: 0
Chris@13 154 name: Identifier(
Chris@13 155 name: A
Chris@13 156 )
Chris@0 157 extends: null
Chris@0 158 implements: array(
Chris@0 159 )
Chris@0 160 stmts: array(
Chris@0 161 0: Stmt_ClassMethod(
Chris@0 162 flags: MODIFIER_PUBLIC (1)
Chris@0 163 byRef: false
Chris@13 164 name: Identifier(
Chris@13 165 name: test
Chris@13 166 )
Chris@0 167 params: array(
Chris@0 168 )
Chris@0 169 returnType: null
Chris@0 170 stmts: array(
Chris@0 171 0: Stmt_Return(
Chris@0 172 expr: Expr_New(
Chris@0 173 class: Stmt_Class(
Chris@0 174 flags: 0
Chris@0 175 name: null
Chris@0 176 extends: Name(
Chris@0 177 parts: array(
Chris@0 178 0: A
Chris@0 179 )
Chris@0 180 )
Chris@0 181 implements: array(
Chris@0 182 )
Chris@0 183 stmts: array(
Chris@0 184 0: Stmt_ClassConst(
Chris@0 185 flags: 0
Chris@0 186 consts: array(
Chris@0 187 0: Const(
Chris@13 188 name: Identifier(
Chris@13 189 name: A
Chris@13 190 )
Chris@0 191 value: Scalar_String(
Chris@0 192 value: B
Chris@0 193 )
Chris@0 194 )
Chris@0 195 )
Chris@0 196 )
Chris@0 197 )
Chris@0 198 )
Chris@0 199 args: array(
Chris@0 200 0: Arg(
Chris@0 201 value: Expr_Variable(
Chris@0 202 name: this
Chris@0 203 )
Chris@0 204 byRef: false
Chris@0 205 unpack: false
Chris@0 206 )
Chris@0 207 )
Chris@0 208 )
Chris@0 209 )
Chris@0 210 )
Chris@0 211 )
Chris@0 212 )
Chris@0 213 )
Chris@0 214 )