@@ -21,17 +21,42 @@ function instancesOfTheSameTypeAreNotIdenticalButCouldBeEqual(stdClass $a, stdCl
21
21
Assert::notEq (createStdClass (), createStdClass ());
22
22
}
23
23
24
- function instancesOfDifferentTypesAreNeverEqual (stdClass $ a , DateTimeInterface $ b , stdClass $ c , DateTimeInterface $ d , stdClass $ e , stdClass $ f , stdClass $ g , stdClass $ h ): void
24
+ function looseVariableComparisonsAreNotSupported (stdClass $ a , DateTimeInterface $ b , stdClass $ c , DateTimeInterface $ d , string $ e , int $ f , string $ g , int $ h ): void
25
25
{
26
- // These don't report anything as PHPStan doesn't currently support loose comparison with ==
27
26
Assert::eq ($ a , $ b );
28
27
Assert::notEq ($ c , $ d );
28
+ Assert::eq ($ e , $ f );
29
+ Assert::notEq ($ g , $ h );
30
+ }
31
+
32
+ function constantComparisons (): void
33
+ {
34
+ Assert::eq (1 , '1 ' ); // will always evaluate to true
35
+ Assert::notEq (1 , '1 ' ); // will always evaluate to false
36
+ Assert::eq (1 , true ); // will always evaluate to true
37
+ Assert::notEq (1 , true ); // will always evaluate to false
38
+ Assert::eq ('php ' , true ); // will always evaluate to true
39
+ Assert::notEq ('php ' , true ); // will always evaluate to false
40
+ Assert::eq ('' , false ); // will always evaluate to true
41
+ Assert::notEq ('' , false ); // will always evaluate to false
29
42
30
- Assert::eq ($ e , new stdClass ()); // will always evaluate to true, should not report anything
31
- Assert::notEq ($ f , new stdClass ());
43
+ Assert::eq (1 , 1 ); // will always evaluate to true
44
+ Assert::notEq (1 , 1 ); // will always evaluate to false
45
+ Assert::eq (true , true ); // will always evaluate to true
46
+ Assert::notEq (true , true ); // will always evaluate to false
47
+ Assert::eq ('php ' , 'php ' ); // will always evaluate to true
48
+ Assert::notEq ('php ' , 'php ' ); // will always evaluate to false
49
+ }
50
+
51
+ function instancesOfDifferentTypesAreNeverEqual (stdClass $ a , stdClass $ b , stdClass $ c , stdClass $ d , stdClass $ e , stdClass $ f ): void
52
+ {
53
+ Assert::eq ($ a , new stdClass ());
54
+ Assert::eq ($ b , createStdClass ());
55
+ Assert::notEq ($ c , new stdClass ());
56
+ Assert::notEq ($ d , createStdClass ());
32
57
33
- Assert::eq ($ g , null ); // will always evaluate to false
34
- Assert::notEq ($ h , null ); // will always evaluate to true
58
+ Assert::eq ($ e , null ); // will always evaluate to false
59
+ Assert::notEq ($ f , null ); // will always evaluate to true
35
60
}
36
61
37
62
function createStdClass (): stdClass
0 commit comments