New ----- b(); new $a->b->c(); new $a->b['c'](); new $a->b{'c'}(); // test regression introduces by new dereferencing syntax (new A); ----- array( 0: Stmt_Expression( expr: Expr_New( class: Name( parts: array( 0: A ) ) args: array( ) ) ) 1: Stmt_Expression( expr: Expr_New( class: Name( parts: array( 0: A ) ) args: array( 0: Arg( value: Expr_Variable( name: b ) byRef: false unpack: false ) ) ) ) 2: Stmt_Expression( expr: Expr_New( class: Expr_Variable( name: a ) args: array( ) comments: array( 0: // class name variations ) ) comments: array( 0: // class name variations ) ) 3: Stmt_Expression( expr: Expr_New( class: Expr_ArrayDimFetch( var: Expr_Variable( name: a ) dim: Scalar_String( value: b ) ) args: array( ) ) ) 4: Stmt_Expression( expr: Expr_New( class: Expr_StaticPropertyFetch( class: Name( parts: array( 0: A ) ) name: VarLikeIdentifier( name: b ) ) args: array( ) ) ) 5: Stmt_Expression( expr: Expr_New( class: Expr_PropertyFetch( var: Expr_Variable( name: a ) name: Identifier( name: b ) ) args: array( ) comments: array( 0: // DNCR object access ) ) comments: array( 0: // DNCR object access ) ) 6: Stmt_Expression( expr: Expr_New( class: Expr_PropertyFetch( var: Expr_PropertyFetch( var: Expr_Variable( name: a ) name: Identifier( name: b ) ) name: Identifier( name: c ) ) args: array( ) ) ) 7: Stmt_Expression( expr: Expr_New( class: Expr_ArrayDimFetch( var: Expr_PropertyFetch( var: Expr_Variable( name: a ) name: Identifier( name: b ) ) dim: Scalar_String( value: c ) ) args: array( ) ) ) 8: Stmt_Expression( expr: Expr_New( class: Expr_ArrayDimFetch( var: Expr_PropertyFetch( var: Expr_Variable( name: a ) name: Identifier( name: b ) ) dim: Scalar_String( value: c ) ) args: array( ) ) ) 9: Stmt_Expression( expr: Expr_New( class: Name( parts: array( 0: A ) ) args: array( ) ) comments: array( 0: // test regression introduces by new dereferencing syntax ) ) )