Chris@0: New expression dereferencing Chris@0: ----- Chris@0: b; Chris@0: (new A)->b(); Chris@0: (new A)['b']; Chris@0: (new A)['b']['c']; Chris@0: ----- Chris@0: array( Chris@13: 0: Stmt_Expression( Chris@13: expr: Expr_PropertyFetch( Chris@13: var: Expr_New( Chris@13: class: Name( Chris@13: parts: array( Chris@13: 0: A Chris@13: ) Chris@0: ) Chris@13: args: array( Chris@13: ) Chris@13: ) Chris@13: name: Identifier( Chris@13: name: b Chris@13: ) Chris@13: ) Chris@13: ) Chris@13: 1: Stmt_Expression( Chris@13: expr: Expr_MethodCall( Chris@13: var: Expr_New( Chris@13: class: Name( Chris@13: parts: array( Chris@13: 0: A Chris@13: ) Chris@13: ) Chris@13: args: array( Chris@13: ) Chris@13: ) Chris@13: name: Identifier( Chris@13: name: b Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: ) Chris@13: 2: Stmt_Expression( Chris@13: expr: Expr_ArrayDimFetch( Chris@0: var: Expr_New( Chris@0: class: Name( Chris@0: parts: array( Chris@0: 0: A Chris@0: ) Chris@0: ) Chris@0: args: array( Chris@0: ) Chris@0: ) Chris@0: dim: Scalar_String( Chris@0: value: b Chris@0: ) Chris@0: ) Chris@13: ) Chris@13: 3: Stmt_Expression( Chris@13: expr: Expr_ArrayDimFetch( Chris@13: var: Expr_ArrayDimFetch( Chris@13: var: Expr_New( Chris@13: class: Name( Chris@13: parts: array( Chris@13: 0: A Chris@13: ) Chris@13: ) Chris@13: args: array( Chris@13: ) Chris@13: ) Chris@13: dim: Scalar_String( Chris@13: value: b Chris@13: ) Chris@13: ) Chris@13: dim: Scalar_String( Chris@13: value: c Chris@13: ) Chris@0: ) Chris@0: ) Chris@0: )