Skip to content

Commit 6bf918a

Browse files
Add regression tests
1 parent 5668c05 commit 6bf918a

File tree

4 files changed

+93
-0
lines changed

4 files changed

+93
-0
lines changed

Diff for: tests/PHPStan/Rules/PhpDoc/WrongVariableNameInVarTagRuleTest.php

+27
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,33 @@ public function testBug12458(): void
197197
$this->analyse([__DIR__ . '/data/bug-12458.php'], []);
198198
}
199199

200+
public function testBug11015(): void
201+
{
202+
$this->checkTypeAgainstNativeType = true;
203+
$this->checkTypeAgainstPhpDocType = true;
204+
$this->strictWideningCheck = true;
205+
206+
$this->analyse([__DIR__ . '/data/bug-11015.php'], []);
207+
}
208+
209+
public function testBug10861(): void
210+
{
211+
$this->checkTypeAgainstNativeType = true;
212+
$this->checkTypeAgainstPhpDocType = true;
213+
$this->strictWideningCheck = true;
214+
215+
$this->analyse([__DIR__ . '/data/bug-10861.php'], []);
216+
}
217+
218+
public function testBug11535(): void
219+
{
220+
$this->checkTypeAgainstNativeType = true;
221+
$this->checkTypeAgainstPhpDocType = true;
222+
$this->strictWideningCheck = true;
223+
224+
$this->analyse([__DIR__ . '/data/bug-11535.php'], []);
225+
}
226+
200227
public function testEnums(): void
201228
{
202229
if (PHP_VERSION_ID < 80100) {

Diff for: tests/PHPStan/Rules/PhpDoc/data/bug-10861.php

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace Bug10861;
4+
5+
class HelloWorld
6+
{
7+
/**
8+
*
9+
* @param array<string,mixed> $array1
10+
* @param-out array<string,mixed> $array1
11+
*/
12+
public function sayHello(array &$array1): void
13+
{
14+
$values_1 = $array1;
15+
16+
$values_1 = array_filter($values_1, function (mixed $value): bool {
17+
return $value !== [];
18+
});
19+
20+
/** @var array<string,mixed> $values_1 */
21+
$array1 = $values_1;
22+
}
23+
}

Diff for: tests/PHPStan/Rules/PhpDoc/data/bug-11015.php

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace Bug11015;
4+
5+
class HelloWorld
6+
{
7+
public function sayHello(PDOStatement $date): void
8+
{
9+
$b = $date->fetch();
10+
if (empty($b)) {
11+
return;
12+
}
13+
14+
/** @var array<string, int> $b */
15+
echo $b['a'];
16+
}
17+
18+
public function sayHello2(PDOStatement $date): void
19+
{
20+
$b = $date->fetch();
21+
22+
/** @var array<string, int> $b */
23+
echo $b['a'];
24+
}
25+
}

Diff for: tests/PHPStan/Rules/PhpDoc/data/bug-11535.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace Bug11535;
4+
5+
/** @var \Closure(string): array<int> */
6+
$a = function(string $b) {
7+
return [1,2,3];
8+
};
9+
10+
/** @var \Closure(array): array */
11+
$a = function(array $b) {
12+
return $b;
13+
};
14+
15+
/** @var \Closure(string): string */
16+
$a = function(string $b) {
17+
return $b;
18+
};

0 commit comments

Comments
 (0)