1List destructing with keys
2-----
3<?php
4
5list('a' => $b) = ['a' => 'b'];
6list('a' => list($b => $c), 'd' => $e) = $x;
7-----
8array(
9    0: Stmt_Expression(
10        expr: Expr_Assign(
11            var: Expr_List(
12                items: array(
13                    0: ArrayItem(
14                        key: Scalar_String(
15                            value: a
16                        )
17                        value: Expr_Variable(
18                            name: b
19                        )
20                        byRef: false
21                        unpack: false
22                    )
23                )
24            )
25            expr: Expr_Array(
26                items: array(
27                    0: ArrayItem(
28                        key: Scalar_String(
29                            value: a
30                        )
31                        value: Scalar_String(
32                            value: b
33                        )
34                        byRef: false
35                        unpack: false
36                    )
37                )
38            )
39        )
40    )
41    1: Stmt_Expression(
42        expr: Expr_Assign(
43            var: Expr_List(
44                items: array(
45                    0: ArrayItem(
46                        key: Scalar_String(
47                            value: a
48                        )
49                        value: Expr_List(
50                            items: array(
51                                0: ArrayItem(
52                                    key: Expr_Variable(
53                                        name: b
54                                    )
55                                    value: Expr_Variable(
56                                        name: c
57                                    )
58                                    byRef: false
59                                    unpack: false
60                                )
61                            )
62                        )
63                        byRef: false
64                        unpack: false
65                    )
66                    1: ArrayItem(
67                        key: Scalar_String(
68                            value: d
69                        )
70                        value: Expr_Variable(
71                            name: e
72                        )
73                        byRef: false
74                        unpack: false
75                    )
76                )
77            )
78            expr: Expr_Variable(
79                name: x
80            )
81        )
82    )
83)
84