@@ -698,4 +698,40 @@ public function sayConstUnion(
698698 assertType ('bool ' , $ constMix == $ looseZero );
699699 }
700700
701+ /**
702+ * @param uppercase-string $upper
703+ * @param lowercase-string $lower
704+ */
705+ public function sayIntersection (
706+ string $ upper ,
707+ string $ lower ,
708+ string $ s ,
709+ ): void
710+ {
711+ assertType ('bool ' , '' == $ upper );
712+ if ($ upper != '' ) {
713+ assertType ('false ' , '' == $ upper );
714+ }
715+ assertType ('bool ' , '0 ' == $ upper );
716+ assertType ('bool ' , 'a ' == $ upper ); // should be false
717+ assertType ('bool ' , 'abc ' == $ upper ); // should be false
718+ assertType ('bool ' , 'aBc ' == $ upper );
719+ assertType ('bool ' , strtoupper ($ s ) == $ upper );
720+ assertType ('bool ' , strtolower ($ s ) == $ upper ); // should be false
721+ assertType ('bool ' , $ upper == $ lower ); // should be false
722+
723+ assertType ('bool ' , '' == $ lower );
724+ if ($ lower != '' ) {
725+ assertType ('false ' , '' == $ lower );
726+ }
727+ assertType ('bool ' , '0 ' == $ lower );
728+ assertType ('bool ' , 'A ' == $ lower ); // should be false
729+ assertType ('bool ' , 'ABC ' == $ lower ); // should be false
730+ assertType ('bool ' , 'AbC ' == $ lower );
731+ assertType ('bool ' , strtoupper ($ s ) == $ lower ); // should be false
732+ assertType ('bool ' , strtolower ($ s ) == $ lower );
733+ assertType ('bool ' , $ lower == $ upper ); // should be false
734+ }
735+
736+
701737}
0 commit comments