Skip to content

Commit b1f7d0a

Browse files
More tests
1 parent e73fd77 commit b1f7d0a

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ function trueCheck(mixed $input, bool $allow_null = false): void
2828
trueCheck($a, allow_null: false);
2929
assertType('string', $a); // correct (string)
3030

31+
$a = x();
32+
trueCheck(allow_null: false, input: $a);
33+
assertType('string', $a); // correct (string)
34+
3135
$a = x();
3236
trueCheck($a, true);
3337
assertType('string|null', $a); // correct (string|null)
@@ -36,6 +40,10 @@ function trueCheck(mixed $input, bool $allow_null = false): void
3640
trueCheck($a, allow_null: true);
3741
assertType('string|null', $a); // correct (string|null)
3842

43+
$a = x();
44+
trueCheck(allow_null: true, input: $a);
45+
assertType('string|null', $a); // correct (string|null)
46+
3947
/** @phpstan-assert ($allow_null is false ? string : string|null) $input */
4048
function falseCheck(mixed $input, bool $allow_null = false): void
4149
{
@@ -53,6 +61,10 @@ function falseCheck(mixed $input, bool $allow_null = false): void
5361
falseCheck($a, allow_null: false);
5462
assertType('string', $a); // correct (string)
5563

64+
$a = x();
65+
falseCheck(allow_null: false, input: $a);
66+
assertType('string', $a); // correct (string|null)
67+
5668
$a = x();
5769
falseCheck($a, true);
5870
assertType('string|null', $a); // correct (string|null)
@@ -61,6 +73,10 @@ function falseCheck(mixed $input, bool $allow_null = false): void
6173
falseCheck($a, allow_null: true);
6274
assertType('string|null', $a); // correct (string|null)
6375

76+
$a = x();
77+
falseCheck(allow_null: true, input: $a);
78+
assertType('string|null', $a); // correct (string|null)
79+
6480
/** @phpstan-assert ($allow_null is not true ? string : string|null) $input */
6581
function notTrueCheck(mixed $input, bool $allow_null = false): void
6682
{
@@ -78,6 +94,10 @@ function notTrueCheck(mixed $input, bool $allow_null = false): void
7894
notTrueCheck($a, allow_null: false);
7995
assertType('string', $a); // correct (string)
8096

97+
$a = x();
98+
notTrueCheck(allow_null: false, input: $a);
99+
assertType('string', $a); // correct (string|null)
100+
81101
$a = x();
82102
notTrueCheck($a, true);
83103
assertType('string|null', $a); // correct (string|null)
@@ -86,6 +106,10 @@ function notTrueCheck(mixed $input, bool $allow_null = false): void
86106
notTrueCheck($a, allow_null: true);
87107
assertType('string|null', $a); // correct (string|null)
88108

109+
$a = x();
110+
notTrueCheck(allow_null: true, input: $a);
111+
assertType('string|null', $a); // correct (string|null)
112+
89113
/** @phpstan-assert ($allow_null is not false ? string|null : string) $input */
90114
function notFalseCheck(mixed $input, bool $allow_null = false): void
91115
{
@@ -103,10 +127,18 @@ function notFalseCheck(mixed $input, bool $allow_null = false): void
103127
notFalseCheck($a, allow_null: false);
104128
assertType('string', $a); // correct (string)
105129

130+
$a = x();
131+
notFalseCheck(allow_null: false, input: $a);
132+
assertType('string', $a); // correct (string|null)
133+
106134
$a = x();
107135
notFalseCheck($a, true);
108136
assertType('string|null', $a); // correct (string|null)
109137

110138
$a = x();
111139
notFalseCheck($a, allow_null: true);
112140
assertType('string|null', $a); // correct (string|null)
141+
142+
$a = x();
143+
notFalseCheck(allow_null: true, input: $a);
144+
assertType('string|null', $a); // correct (string|null)

0 commit comments

Comments
 (0)