Chris@0: UVS new expressions Chris@0: ----- Chris@0: className; Chris@0: new Test::$className; Chris@0: new $test::$className; Chris@0: new $weird[0]->foo::$className; Chris@0: ----- Chris@0: !!php7 Chris@0: array( Chris@0: 0: Expr_New( Chris@0: class: Expr_Variable( Chris@0: name: className Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: 1: Expr_New( Chris@0: class: Expr_ArrayDimFetch( Chris@0: var: Expr_Variable( Chris@0: name: array Chris@0: ) Chris@0: dim: Scalar_String( Chris@0: value: className Chris@0: ) Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: 2: Expr_New( Chris@0: class: Expr_ArrayDimFetch( Chris@0: var: Expr_Variable( Chris@0: name: array Chris@0: ) Chris@0: dim: Scalar_String( Chris@0: value: className Chris@0: ) Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: 3: Expr_New( Chris@0: class: Expr_PropertyFetch( Chris@0: var: Expr_Variable( Chris@0: name: obj Chris@0: ) Chris@0: name: className Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: 4: Expr_New( Chris@0: class: Expr_StaticPropertyFetch( Chris@0: class: Name( Chris@0: parts: array( Chris@0: 0: Test Chris@0: ) Chris@0: ) Chris@0: name: className Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: 5: Expr_New( Chris@0: class: Expr_StaticPropertyFetch( Chris@0: class: Expr_Variable( Chris@0: name: test Chris@0: ) Chris@0: name: className Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: 6: Expr_New( Chris@0: class: Expr_StaticPropertyFetch( Chris@0: class: Expr_PropertyFetch( Chris@0: var: Expr_ArrayDimFetch( Chris@0: var: Expr_Variable( Chris@0: name: weird Chris@0: ) Chris@0: dim: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: name: foo Chris@0: ) Chris@0: name: className Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: )