File tree Expand file tree Collapse file tree 5 files changed +129
-0
lines changed Expand file tree Collapse file tree 5 files changed +129
-0
lines changed Original file line number Diff line number Diff line change @@ -43,4 +43,9 @@ public function supportsNamedArgumentAfterUnpackedArgument(): TrinaryLogic
43
43
return IntegerRangeType::fromInterval (80100 , null )->isSuperTypeOf ($ this ->phpVersions )->result ;
44
44
}
45
45
46
+ public function supportsTrueAndFalseStandaloneType (): TrinaryLogic
47
+ {
48
+ return IntegerRangeType::fromInterval (80200 , null )->isSuperTypeOf ($ this ->phpVersions )->result ;
49
+ }
50
+
46
51
}
Original file line number Diff line number Diff line change @@ -182,4 +182,15 @@ public function testBug8926(): void
182
182
$ this ->analyse ([__DIR__ . '/data/bug-8926.php ' ], []);
183
183
}
184
184
185
+ public function testBug13384b (): void
186
+ {
187
+ $ this ->treatPhpDocTypesAsCertain = true ;
188
+ $ this ->analyse ([__DIR__ . '/../TooWideTypehints/data/bug-13384b.php ' ], [
189
+ [
190
+ 'If condition is always false. ' ,
191
+ 23 ,
192
+ ],
193
+ ]);
194
+ }
195
+
185
196
}
Original file line number Diff line number Diff line change @@ -59,4 +59,30 @@ public function testBug11667(): void
59
59
$ this ->analyse ([__DIR__ . '/data/bug-11667.php ' ], []);
60
60
}
61
61
62
+ #[RequiresPhp('>= 8.2 ' )]
63
+ public function testBug13384 (): void
64
+ {
65
+ $ this ->analyse ([__DIR__ . '/data/bug-13384.php ' ], [
66
+ [
67
+ 'Static property Bug13384\ShutdownHandlerFalseDefault::$registered (bool) is never assigned true so it can be removed from the property type. ' ,
68
+ 9 ,
69
+ ],
70
+ [
71
+ 'Static property Bug13384\ShutdownHandlerTrueDefault::$registered (bool) is never assigned false so it can be removed from the property type. ' ,
72
+ 34 ,
73
+ ],
74
+ ]);
75
+ }
76
+
77
+ #[RequiresPhp('< 8.2 ' )]
78
+ public function testBug13384NoStandaloneTrueFalse (): void
79
+ {
80
+ $ this ->analyse ([__DIR__ . '/data/bug-13384.php ' ], []);
81
+ }
82
+
83
+ public function testBug13384b (): void
84
+ {
85
+ $ this ->analyse ([__DIR__ . '/data/bug-13384b.php ' ], []);
86
+ }
87
+
62
88
}
Original file line number Diff line number Diff line change
1
+ <?php declare (strict_types=1 );
2
+
3
+ namespace Bug13384 ;
4
+
5
+ use function register_shutdown_function ;
6
+
7
+ final class ShutdownHandlerFalseDefault
8
+ {
9
+ private static bool $ registered = false ;
10
+ private static string $ message = '' ;
11
+
12
+ public static function setMessage (string $ message ): void
13
+ {
14
+ self ::register ();
15
+
16
+ self ::$ message = $ message ;
17
+ }
18
+
19
+ private static function register (): void
20
+ {
21
+ if (self ::$ registered ) {
22
+ return ;
23
+ }
24
+
25
+ register_shutdown_function (static function (): void
26
+ {
27
+ print self ::$ message ;
28
+ });
29
+ }
30
+ }
31
+
32
+ final class ShutdownHandlerTrueDefault
33
+ {
34
+ private static bool $ registered = true ;
35
+ private static string $ message = '' ;
36
+
37
+ public static function setMessage (string $ message ): void
38
+ {
39
+ self ::register ();
40
+
41
+ self ::$ message = $ message ;
42
+ }
43
+
44
+ private static function register (): void
45
+ {
46
+ if (self ::$ registered ) {
47
+ return ;
48
+ }
49
+
50
+ register_shutdown_function (static function (): void
51
+ {
52
+ print self ::$ message ;
53
+ });
54
+ }
55
+ }
Original file line number Diff line number Diff line change
1
+ <?php // lint >= 8.2
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace Bug13384b ;
6
+
7
+ use function register_shutdown_function ;
8
+
9
+ final class ShutdownHandlerFooBar
10
+ {
11
+ private static false $ registered = false ;
12
+ private static string $ message = '' ;
13
+
14
+ public static function setMessage (string $ message ): void
15
+ {
16
+ self ::register ();
17
+
18
+ self ::$ message = $ message ;
19
+ }
20
+
21
+ private static function register (): void
22
+ {
23
+ if (self ::$ registered ) {
24
+ return ;
25
+ }
26
+
27
+ register_shutdown_function (static function (): void
28
+ {
29
+ print self ::$ message ;
30
+ });
31
+ }
32
+ }
You can’t perform that action at this time.
0 commit comments