@@ -44,6 +44,49 @@ function fourLevelsDeep() : array {
4444 return $ final ;
4545}
4646
47+ /**
48+ * @return array<int, array<int, array<int, array<int, array<int, array{abc: int, def: int, ghi: int}>>>>>
49+ */
50+ function fiveLevelsDeep () : array {
51+ $ final = [];
52+
53+ for ($ i = 0 ; $ i < 5 ; $ i ++) {
54+ $ j = $ i * 2 ;
55+ $ k = $ j + 1 ;
56+ $ l = $ i * 3 ;
57+ $ m = $ i + 10 ;
58+ $ final [$ i ][$ j ][$ k ][$ l ][$ m ]['abc ' ] = $ i ;
59+ $ final [$ i ][$ j ][$ k ][$ l ][$ m ]['def ' ] = $ i ;
60+ $ final [$ i ][$ j ][$ k ][$ l ][$ m ]['ghi ' ] = $ i ;
61+
62+ assertType ("array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>} " , $ final [$ i ][$ j ][$ k ][$ l ][$ m ]);
63+ }
64+
65+ return $ final ;
66+ }
67+
68+ /**
69+ * @return array<int, array<int, array<int, array<int, array<int, array<int, array{abc: int, def: int, ghi: int}>>>>>>
70+ */
71+ function sixLevelsDeep () : array {
72+ $ final = [];
73+
74+ for ($ i = 0 ; $ i < 5 ; $ i ++) {
75+ $ j = $ i * 2 ;
76+ $ k = $ j + 1 ;
77+ $ l = $ i * 3 ;
78+ $ m = $ i + 10 ;
79+ $ n = $ i + 20 ;
80+ $ final [$ i ][$ j ][$ k ][$ l ][$ m ][$ n ]['abc ' ] = $ i ;
81+ $ final [$ i ][$ j ][$ k ][$ l ][$ m ][$ n ]['def ' ] = $ i ;
82+ $ final [$ i ][$ j ][$ k ][$ l ][$ m ][$ n ]['ghi ' ] = $ i ;
83+
84+ assertType ("array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>} " , $ final [$ i ][$ j ][$ k ][$ l ][$ m ][$ n ]);
85+ }
86+
87+ return $ final ;
88+ }
89+
4790/**
4891* @return array<int, array<int, array{abc: int, def: int, ghi: int}>>
4992*/
0 commit comments