Skip to content

Commit bb1614f

Browse files
phpstan-botclaude
authored andcommitted
Add empty() tests for bug-14393
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 16b081f commit bb1614f

File tree

4 files changed

+25
-6
lines changed

4 files changed

+25
-6
lines changed

tests/PHPStan/Rules/Variables/EmptyRuleTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,13 @@ public function testBug7806(): void
223223
$this->analyse([__DIR__ . '/data/bug-7806.php'], []);
224224
}
225225

226+
public function testBug14393(): void
227+
{
228+
$this->treatPhpDocTypesAsCertain = true;
229+
230+
$this->analyse([__DIR__ . '/data/bug-14393.php'], []);
231+
}
232+
226233
#[RequiresPhp('>= 8.0')]
227234
public function testIssetAfterRememberedConstructor(): void
228235
{

tests/PHPStan/Rules/Variables/IssetRuleTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -537,15 +537,15 @@ public function testBug14393(): void
537537
],
538538
[
539539
'Property Bug14393\MyClassPhpDoc::$i (int) in isset() is not nullable.',
540-
35,
540+
37,
541541
],
542542
[
543543
'Property Bug14393\MyClass::$i (int) in isset() is not nullable.',
544-
75,
544+
81,
545545
],
546546
[
547547
'Property Bug14393\MyClassPhpDoc::$i (int) in isset() is not nullable.',
548-
85,
548+
93,
549549
],
550550
]);
551551
}

tests/PHPStan/Rules/Variables/NullCoalesceRuleTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,15 +396,15 @@ public function testBug14393(): void
396396
],
397397
[
398398
'Property Bug14393\MyClassPhpDoc::$i (int) on left side of ?? is not nullable.',
399-
34,
399+
36,
400400
],
401401
[
402402
'Property Bug14393\MyClass::$i (int) on left side of ?? is not nullable.',
403-
74,
403+
80,
404404
],
405405
[
406406
'Property Bug14393\MyClassPhpDoc::$i (int) on left side of ?? is not nullable.',
407-
84,
407+
92,
408408
],
409409
]);
410410
}

tests/PHPStan/Rules/Variables/data/bug-14393.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public function doFoo(): void
1010
{
1111
var_dump($this->i ?? -1);
1212
var_dump(isset($this->i));
13+
var_dump(empty($this->i));
1314
}
1415
}
1516

@@ -21,6 +22,7 @@ public function doFoo(): void
2122
{
2223
var_dump($this->i ?? -1);
2324
var_dump(isset($this->i));
25+
var_dump(empty($this->i));
2426
}
2527
}
2628

@@ -33,6 +35,7 @@ public function doFoo(): void
3335
{
3436
var_dump($this->i ?? -1);
3537
var_dump(isset($this->i));
38+
var_dump(empty($this->i));
3639
}
3740
}
3841

@@ -44,6 +47,7 @@ public function doFoo(): void
4447
{
4548
var_dump($this->i ?? -1);
4649
var_dump(isset($this->i));
50+
var_dump(empty($this->i));
4751
}
4852
}
4953

@@ -55,6 +59,7 @@ public function doFoo(): void
5559
{
5660
var_dump($this->i ?? -1);
5761
var_dump(isset($this->i));
62+
var_dump(empty($this->i));
5863
}
5964
}
6065

@@ -66,35 +71,42 @@ public function doFoo(): void
6671
{
6772
var_dump($this->i ?? -1);
6873
var_dump(isset($this->i));
74+
var_dump(empty($this->i));
6975
}
7076
}
7177

7278
$o = new MyClass();
7379

7480
var_dump($o->i ?? -1);
7581
var_dump(isset($o->i));
82+
var_dump(empty($o->i));
7683

7784
$o2 = new MyClassUninitialized();
7885

7986
var_dump($o2->i ?? -1);
8087
var_dump(isset($o2->i));
88+
var_dump(empty($o2->i));
8189

8290
$o3 = new MyClassPhpDoc();
8391

8492
var_dump($o3->i ?? -1);
8593
var_dump(isset($o3->i));
94+
var_dump(empty($o3->i));
8695

8796
$o4 = new MyClassNullable();
8897

8998
var_dump($o4->i ?? -1);
9099
var_dump(isset($o4->i));
100+
var_dump(empty($o4->i));
91101

92102
$o5 = new MyClassNullableWithDefault();
93103

94104
var_dump($o5->i ?? -1);
95105
var_dump(isset($o5->i));
106+
var_dump(empty($o5->i));
96107

97108
$o6 = new MyClassNullableWithNullDefault();
98109

99110
var_dump($o6->i ?? -1);
100111
var_dump(isset($o6->i));
112+
var_dump(empty($o6->i));

0 commit comments

Comments
 (0)