File tree Expand file tree Collapse file tree 5 files changed +175
-78
lines changed
tests/PHPStan/Rules/Arrays Expand file tree Collapse file tree 5 files changed +175
-78
lines changed Original file line number Diff line number Diff line change @@ -903,9 +903,19 @@ public function testInternalClassesWithOverloadedOffsetAccess(): void
903903 $ this ->analyse ([__DIR__ . '/data/internal-classes-overload-offset-access.php ' ], []);
904904 }
905905
906+ public function testInternalClassesWithOverloadedOffsetAccess84 (): void
907+ {
908+ $ this ->analyse ([__DIR__ . '/data/internal-classes-overload-offset-access-php84.php ' ], []);
909+ }
910+
906911 public function testInternalClassesWithOverloadedOffsetAccessInvalid (): void
907912 {
908913 $ this ->analyse ([__DIR__ . '/data/internal-classes-overload-offset-access-invalid.php ' ], []);
909914 }
910915
916+ public function testInternalClassesWithOverloadedOffsetAccessInvalid84 (): void
917+ {
918+ $ this ->analyse ([__DIR__ . '/data/internal-classes-overload-offset-access-invalid-php84.php ' ], []);
919+ }
920+
911921}
Original file line number Diff line number Diff line change 1+ <?php // lint >= 8.4
2+ /**
3+ * All of these offset accesses are invalid
4+ * ++ and -- are also disallowed in general are they operate "by ref"
5+ */
6+ namespace InternalClassesOverloadOffsetAccessInvalid \Php84 ;
7+
8+ function test1 (\DOMNamedNodeMap $ v ): void
9+ {
10+ $ v [] = 'append ' ;
11+ $ v [0 ] = 'update ' ;
12+ $ v [0 ] .= ' and again ' ;
13+ $ r1 = &$ v [0 ];
14+ unset($ v [0 ]);
15+ var_dump ($ r1 );
16+ }
17+
18+ function test2 (\Dom \NamedNodeMap $ v ): void
19+ {
20+ $ v [] = 'append ' ;
21+ $ v [0 ] = 'update ' ;
22+ $ v [0 ] .= ' and again ' ;
23+ $ r1 = &$ v [0 ];
24+ unset($ v [0 ]);
25+ var_dump ($ r1 );
26+ }
27+
28+ function test3 (\DOMNodeList $ v ): void
29+ {
30+ $ v [] = 'append ' ;
31+ $ v [0 ] = 'update ' ;
32+ $ v [0 ] .= ' and again ' ;
33+ $ r1 = &$ v [0 ];
34+ unset($ v [0 ]);
35+ var_dump ($ r1 );
36+ }
37+
38+ function test4 (\Dom \NodeList $ v ): void
39+ {
40+ $ v [] = 'append ' ;
41+ $ v [0 ] = 'update ' ;
42+ $ v [0 ] .= ' and again ' ;
43+ $ r1 = &$ v [0 ];
44+ unset($ v [0 ]);
45+ var_dump ($ r1 );
46+ }
47+
48+ function test5 (\Dom \HTMLCollection $ v ): void
49+ {
50+ $ v [] = 'append ' ;
51+ $ v [0 ] = 'update ' ;
52+ $ v [0 ] .= ' and again ' ;
53+ $ r1 = &$ v [0 ];
54+ unset($ v [0 ]);
55+ var_dump ($ r1 );
56+ }
57+
58+ function test6 (\Dom \DtdNamedNodeMap $ v ): void
59+ {
60+ $ v [] = 'append ' ;
61+ $ v [0 ] = 'update ' ;
62+ $ v [0 ] .= ' and again ' ;
63+ $ r1 = &$ v [0 ];
64+ unset($ v [0 ]);
65+ var_dump ($ r1 );
66+ }
67+
68+ function test7 (\PDORow $ v ): void
69+ {
70+ $ v [] = 'append ' ;
71+ $ v [0 ] = 'update ' ;
72+ $ v [0 ] .= ' and again ' ;
73+ $ r1 = &$ v [0 ];
74+ unset($ v [0 ]);
75+ var_dump ($ r1 );
76+ }
77+
78+ function test8 (\ResourceBundle $ v ): void
79+ {
80+ if ($ v [0 ]) {
81+ var_dump ($ v [0 ]);
82+ }
83+ $ v [] = 'append ' ;
84+ $ v [0 ] = 'update ' ;
85+ $ v [0 ] .= ' and again ' ;
86+ $ r1 = &$ v [0 ];
87+ unset($ v [0 ]);
88+ var_dump ($ r1 );
89+ var_dump ($ v ['name ' ]);
90+ var_dump ($ v [0 ]);
91+ }
Original file line number Diff line number Diff line change @@ -15,16 +15,6 @@ function test1(\DOMNamedNodeMap $v): void
1515 var_dump ($ r1 );
1616}
1717
18- function test2 (\Dom \NamedNodeMap $ v ): void
19- {
20- $ v [] = 'append ' ;
21- $ v [0 ] = 'update ' ;
22- $ v [0 ] .= ' and again ' ;
23- $ r1 = &$ v [0 ];
24- unset($ v [0 ]);
25- var_dump ($ r1 );
26- }
27-
2818function test3 (\DOMNodeList $ v ): void
2919{
3020 $ v [] = 'append ' ;
@@ -35,36 +25,6 @@ function test3(\DOMNodeList $v): void
3525 var_dump ($ r1 );
3626}
3727
38- function test4 (\Dom \NodeList $ v ): void
39- {
40- $ v [] = 'append ' ;
41- $ v [0 ] = 'update ' ;
42- $ v [0 ] .= ' and again ' ;
43- $ r1 = &$ v [0 ];
44- unset($ v [0 ]);
45- var_dump ($ r1 );
46- }
47-
48- function test5 (\Dom \HTMLCollection $ v ): void
49- {
50- $ v [] = 'append ' ;
51- $ v [0 ] = 'update ' ;
52- $ v [0 ] .= ' and again ' ;
53- $ r1 = &$ v [0 ];
54- unset($ v [0 ]);
55- var_dump ($ r1 );
56- }
57-
58- function test6 (\Dom \DtdNamedNodeMap $ v ): void
59- {
60- $ v [] = 'append ' ;
61- $ v [0 ] = 'update ' ;
62- $ v [0 ] .= ' and again ' ;
63- $ r1 = &$ v [0 ];
64- unset($ v [0 ]);
65- var_dump ($ r1 );
66- }
67-
6828function test7 (\PDORow $ v ): void
6929{
7030 $ v [] = 'append ' ;
Original file line number Diff line number Diff line change 1+ <?php // lint >= 8.4
2+
3+ namespace InternalClassesOverloadOffsetAccess \Php84 ;
4+
5+ function test1 (\DOMNamedNodeMap $ v ): void
6+ {
7+ if ($ v ['attribute_name ' ]) {
8+ var_dump ($ v ['attribute_name ' ]);
9+ }
10+ if ($ v [0 ]) {
11+ var_dump ($ v [0 ]);
12+ }
13+ }
14+
15+ function test2 (\Dom \NamedNodeMap $ v ): void
16+ {
17+ if ($ v ['attribute_name ' ]) {
18+ var_dump ($ v ['attribute_name ' ]);
19+ }
20+ if ($ v [0 ]) {
21+ var_dump ($ v [0 ]);
22+ }
23+ }
24+
25+ function test3 (\DOMNodeList $ v ): void
26+ {
27+ if ($ v [0 ]) {
28+ var_dump ($ v [0 ]);
29+ }
30+ }
31+
32+ function test4 (\Dom \NodeList $ v ): void
33+ {
34+ //var_dump($v['attribute_name']);
35+ if ($ v [0 ]) {
36+ var_dump ($ v [0 ]);
37+ }
38+ }
39+
40+ function test5 (\Dom \HTMLCollection $ v ): void
41+ {
42+ if ($ v ['name ' ]) {
43+ var_dump ($ v ['name ' ]);
44+ }
45+ if ($ v [0 ]) {
46+ var_dump ($ v [0 ]);
47+ }
48+ }
49+
50+ function test6 (\Dom \DtdNamedNodeMap $ v ): void
51+ {
52+ if ($ v ['name ' ]) {
53+ var_dump ($ v ['name ' ]);
54+ }
55+ if ($ v [0 ]) {
56+ var_dump ($ v [0 ]);
57+ }
58+ }
59+
60+ function test7 (\PDORow $ v ): void
61+ {
62+ if ($ v ['name ' ]) {
63+ var_dump ($ v ['name ' ]);
64+ }
65+ if ($ v [0 ]) {
66+ var_dump ($ v [0 ]);
67+ }
68+ }
69+
70+ function test8 (\ResourceBundle $ v ): void
71+ {
72+ var_dump ($ v ['name ' ]);
73+ var_dump ($ v [0 ]);
74+ }
Original file line number Diff line number Diff line change @@ -12,51 +12,13 @@ function test1(\DOMNamedNodeMap $v): void
1212 }
1313}
1414
15- function test2 (\Dom \NamedNodeMap $ v ): void
16- {
17- if ($ v ['attribute_name ' ]) {
18- var_dump ($ v ['attribute_name ' ]);
19- }
20- if ($ v [0 ]) {
21- var_dump ($ v [0 ]);
22- }
23- }
24-
2515function test3 (\DOMNodeList $ v ): void
2616{
2717 if ($ v [0 ]) {
2818 var_dump ($ v [0 ]);
2919 }
3020}
3121
32- function test4 (\Dom \NodeList $ v ): void
33- {
34- //var_dump($v['attribute_name']);
35- if ($ v [0 ]) {
36- var_dump ($ v [0 ]);
37- }
38- }
39-
40- function test5 (\Dom \HTMLCollection $ v ): void
41- {
42- if ($ v ['name ' ]) {
43- var_dump ($ v ['name ' ]);
44- }
45- if ($ v [0 ]) {
46- var_dump ($ v [0 ]);
47- }
48- }
49-
50- function test6 (\Dom \DtdNamedNodeMap $ v ): void
51- {
52- if ($ v ['name ' ]) {
53- var_dump ($ v ['name ' ]);
54- }
55- if ($ v [0 ]) {
56- var_dump ($ v [0 ]);
57- }
58- }
59-
6022function test7 (\PDORow $ v ): void
6123{
6224 if ($ v ['name ' ]) {
You can’t perform that action at this time.
0 commit comments