Skip to content

Commit 36b45da

Browse files
Add tests
1 parent 7cc7b73 commit 36b45da

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

Diff for: tests/PHPStan/Analyser/nsrt/bug-12312.php

+99
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,39 @@ public function sayLowercase(string $s): void
1717
assertType('lowercase-string', $s);
1818
}
1919

20+
/**
21+
* @param lowercase-string $s
22+
*/
23+
public function sayLowercase2(string $s): void
24+
{
25+
if ('' != $s) {
26+
assertType('lowercase-string&non-empty-string', $s);
27+
}
28+
assertType('lowercase-string', $s);
29+
}
30+
31+
/**
32+
* @param lowercase-string $s
33+
*/
34+
public function sayLowercase3(string $s): void
35+
{
36+
if ($s != '0') {
37+
assertType('lowercase-string&non-falsy-string', $s);
38+
}
39+
assertType('lowercase-string', $s);
40+
}
41+
42+
/**
43+
* @param lowercase-string $s
44+
*/
45+
public function sayLowercase4(string $s): void
46+
{
47+
if ('0' != $s) {
48+
assertType('lowercase-string&non-falsy-string', $s);
49+
}
50+
assertType('lowercase-string', $s);
51+
}
52+
2053
/**
2154
* @param uppercase-string $s
2255
*/
@@ -28,6 +61,39 @@ public function sayUppercase(string $s): void
2861
assertType('uppercase-string', $s);
2962
}
3063

64+
/**
65+
* @param uppercase-string $s
66+
*/
67+
public function sayUppercase2(string $s): void
68+
{
69+
if ('' != $s) {
70+
assertType('non-empty-string&uppercase-string', $s);
71+
}
72+
assertType('uppercase-string', $s);
73+
}
74+
75+
/**
76+
* @param uppercase-string $s
77+
*/
78+
public function sayUppercase3(string $s): void
79+
{
80+
if ($s != '0') {
81+
assertType('non-falsy-string&uppercase-string', $s);
82+
}
83+
assertType('uppercase-string', $s);
84+
}
85+
86+
/**
87+
* @param uppercase-string $s
88+
*/
89+
public function sayUppercase4(string $s): void
90+
{
91+
if ('0' != $s) {
92+
assertType('non-falsy-string&uppercase-string', $s);
93+
}
94+
assertType('uppercase-string', $s);
95+
}
96+
3197
/**
3298
* @param lowercase-string&uppercase-string $s
3399
*/
@@ -38,4 +104,37 @@ public function sayBoth(string $s): void
38104
}
39105
assertType('lowercase-string&uppercase-string', $s);
40106
}
107+
108+
/**
109+
* @param lowercase-string&uppercase-string $s
110+
*/
111+
public function sayBoth2(string $s): void
112+
{
113+
if ('' != $s) {
114+
assertType('lowercase-string&non-empty-string&uppercase-string', $s);
115+
}
116+
assertType('lowercase-string&uppercase-string', $s);
117+
}
118+
119+
/**
120+
* @param lowercase-string&uppercase-string $s
121+
*/
122+
public function sayBoth3(string $s): void
123+
{
124+
if ($s != '0') {
125+
assertType('lowercase-string&non-falsy-string&uppercase-string', $s);
126+
}
127+
assertType('lowercase-string&uppercase-string', $s);
128+
}
129+
130+
/**
131+
* @param lowercase-string&uppercase-string $s
132+
*/
133+
public function sayBoth4(string $s): void
134+
{
135+
if ('0' != $s) {
136+
assertType('lowercase-string&non-falsy-string&uppercase-string', $s);
137+
}
138+
assertType('lowercase-string&uppercase-string', $s);
139+
}
41140
}

0 commit comments

Comments
 (0)