@@ -14,32 +14,50 @@ function test(int $int, string $string, $stringOrInt, $mixed) : void
1414 assertType ('*ERROR* ' , $ int & $ string );
1515 assertType ('*ERROR* ' , $ int & $ stringOrInt );
1616 assertType ('int ' , $ int & $ mixed );
17+ assertType ('*ERROR* ' , $ string & $ int );
1718 assertType ('string ' , $ string & $ string );
1819 assertType ('*ERROR* ' , $ string & $ stringOrInt );
19- assertType ('*ERROR* ' , $ string & $ mixed );
20+ assertType ('string ' , $ string & $ mixed );
21+ assertType ('*ERROR* ' , $ stringOrInt & $ int );
22+ assertType ('*ERROR* ' , $ stringOrInt & $ string );
2023 assertType ('*ERROR* ' , $ stringOrInt & $ stringOrInt );
2124 assertType ('*ERROR* ' , $ stringOrInt & $ mixed );
22- assertType ('*ERROR* ' , $ mixed & $ mixed );
25+ assertType ('int ' , $ mixed & $ int );
26+ assertType ('string ' , $ mixed & $ string );
27+ assertType ('*ERROR* ' , $ mixed & $ stringOrInt );
28+ assertType ('(int|string) ' , $ mixed & $ mixed );
2329
2430 assertType ('int ' , $ int | $ int );
2531 assertType ('*ERROR* ' , $ int | $ string );
2632 assertType ('*ERROR* ' , $ int | $ stringOrInt );
2733 assertType ('int ' , $ int | $ mixed );
34+ assertType ('*ERROR* ' , $ string | $ int );
2835 assertType ('string ' , $ string | $ string );
2936 assertType ('*ERROR* ' , $ string | $ stringOrInt );
30- assertType ('*ERROR* ' , $ string | $ mixed );
37+ assertType ('string ' , $ string | $ mixed );
38+ assertType ('*ERROR* ' , $ stringOrInt | $ int );
39+ assertType ('*ERROR* ' , $ stringOrInt | $ string );
3140 assertType ('*ERROR* ' , $ stringOrInt | $ stringOrInt );
3241 assertType ('*ERROR* ' , $ stringOrInt | $ mixed );
33- assertType ('*ERROR* ' , $ mixed | $ mixed );
42+ assertType ('int ' , $ mixed | $ int );
43+ assertType ('string ' , $ mixed | $ string );
44+ assertType ('*ERROR* ' , $ mixed | $ stringOrInt );
45+ assertType ('(int|string) ' , $ mixed | $ mixed );
3446
3547 assertType ('int ' , $ int ^ $ int );
3648 assertType ('*ERROR* ' , $ int ^ $ string );
3749 assertType ('*ERROR* ' , $ int ^ $ stringOrInt );
3850 assertType ('int ' , $ int ^ $ mixed );
51+ assertType ('*ERROR* ' , $ string ^ $ int );
3952 assertType ('string ' , $ string ^ $ string );
4053 assertType ('*ERROR* ' , $ string ^ $ stringOrInt );
41- assertType ('*ERROR* ' , $ string ^ $ mixed );
54+ assertType ('string ' , $ string ^ $ mixed );
55+ assertType ('*ERROR* ' , $ stringOrInt ^ $ int );
56+ assertType ('*ERROR* ' , $ stringOrInt ^ $ string );
4257 assertType ('*ERROR* ' , $ stringOrInt ^ $ stringOrInt );
4358 assertType ('*ERROR* ' , $ stringOrInt ^ $ mixed );
44- assertType ('*ERROR* ' , $ mixed ^ $ mixed );
59+ assertType ('int ' , $ mixed ^ $ int );
60+ assertType ('string ' , $ mixed ^ $ string );
61+ assertType ('*ERROR* ' , $ mixed ^ $ stringOrInt );
62+ assertType ('(int|string) ' , $ mixed ^ $ mixed );
4563}
0 commit comments