Skip to content

Commit 21881f4

Browse files
committed
Split tests for 8.4 and below
1 parent bff963c commit 21881f4

5 files changed

+175
-78
lines changed

tests/PHPStan/Rules/Arrays/NonexistentOffsetInArrayDimFetchRuleTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
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+
}

tests/PHPStan/Rules/Arrays/data/internal-classes-overload-offset-access-invalid.php

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff 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-
2818
function 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-
6828
function test7(\PDORow $v): void
6929
{
7030
$v[] = 'append';
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
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+
}

tests/PHPStan/Rules/Arrays/data/internal-classes-overload-offset-access.php

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff 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-
2515
function 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-
6022
function test7(\PDORow $v): void
6123
{
6224
if ($v['name']) {

0 commit comments

Comments
 (0)