Skip to content

Commit d77e08d

Browse files
phpstan-botclaude
andcommitted
Add assertType on $final inside and outside for loops in bug-13637 test
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent d3189c7 commit d77e08d

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

tests/PHPStan/Analyser/nsrt/bug-13637.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@ function doesNotWork() : array {
1919
$final[$i][$j][$k]['ghi'] = $i;
2020

2121
assertType("array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}", $final[$i][$j][$k]);
22+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, non-empty-array<int<1, 9>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>>", $final);
2223
}
2324

25+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, non-empty-array<int<1, 9>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>>", $final);
2426
return $final;
2527
}
2628

@@ -39,8 +41,10 @@ function fourLevelsDeep() : array {
3941
$final[$i][$j][$k][$l]['ghi'] = $i;
4042

4143
assertType("array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}", $final[$i][$j][$k][$l]);
44+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, non-empty-array<int<1, 9>, non-empty-array<int<0, 12>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>>>", $final);
4245
}
4346

47+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, non-empty-array<int<1, 9>, non-empty-array<int<0, 12>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>>>", $final);
4448
return $final;
4549
}
4650

@@ -60,8 +64,10 @@ function fiveLevelsDeep() : array {
6064
$final[$i][$j][$k][$l][$m]['ghi'] = $i;
6165

6266
assertType("array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}", $final[$i][$j][$k][$l][$m]);
67+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, non-empty-array<int<1, 9>, non-empty-array<int<0, 12>, non-empty-array<int<10, 14>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>>>>", $final);
6368
}
6469

70+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, non-empty-array<int<1, 9>, non-empty-array<int<0, 12>, non-empty-array<int<10, 14>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>>>>", $final);
6571
return $final;
6672
}
6773

@@ -82,8 +88,10 @@ function sixLevelsDeep() : array {
8288
$final[$i][$j][$k][$l][$m][$n]['ghi'] = $i;
8389

8490
assertType("array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}", $final[$i][$j][$k][$l][$m][$n]);
91+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, non-empty-array<int<1, 9>, non-empty-array<int<0, 12>, non-empty-array<int<10, 14>, non-empty-array<int<20, 24>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>>>>>", $final);
8592
}
8693

94+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, non-empty-array<int<1, 9>, non-empty-array<int<0, 12>, non-empty-array<int<10, 14>, non-empty-array<int<20, 24>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>>>>>", $final);
8795
return $final;
8896
}
8997

@@ -102,7 +110,9 @@ function thisWorks() : array {
102110
$final[$i][$j]['ghi'] = $i;
103111

104112
assertType("array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}", $final[$i][$j]);
113+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>", $final);
105114
}
106115

116+
assertType("non-empty-array<int<0, 4>, non-empty-array<int<0, 8>, array{abc: int<0, 4>, def: int<0, 4>, ghi: int<0, 4>}>>", $final);
107117
return $final;
108118
}

0 commit comments

Comments
 (0)