@@ -641,4 +641,158 @@ public void testStringCasts() {
641
641
expectScriptThrows (ClassCastException .class , () -> exec ("String o = 'string'; ArrayList b = o;" ));
642
642
expectScriptThrows (ClassCastException .class , () -> exec ("String o = 'string'; ArrayList b = (ArrayList)o;" ));
643
643
}
644
+
645
+ public void testPrimitiveBooleanCasts () {
646
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Object n = o;" ));
647
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Object n = (Object)o;" ));
648
+
649
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Number n = o;" ));
650
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Number n = (boolean)o;" ));
651
+
652
+ exec ("boolean o = true; boolean b = o;" );
653
+ exec ("boolean o = true; boolean b = (boolean)o;" );
654
+
655
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; byte b = o;" ));
656
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; byte b = (byte)o;" ));
657
+
658
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; short b = o;" ));
659
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; short b = (short)o;" ));
660
+
661
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; char b = o;" ));
662
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; char b = (char)o;" ));
663
+
664
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; int b = o;" ));
665
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; int b = (int)o;" ));
666
+
667
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; long b = o;" ));
668
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; long b = (long)o;" ));
669
+
670
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; float b = o;" ));
671
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; float b = (float)o;" ));
672
+
673
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; double b = o;" ));
674
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; double b = (double)o;" ));
675
+
676
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Boolean b = o;" ));
677
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Boolean b = (Boolean)o;" ));
678
+
679
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Byte b = o;" ));
680
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Byte b = (Byte)o;" ));
681
+
682
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Short b = o;" ));
683
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Short b = (Short)o;" ));
684
+
685
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Character b = o;" ));
686
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Character b = (Character)o;" ));
687
+
688
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Integer b = o;" ));
689
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Integer b = (Integer)o;" ));
690
+
691
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Long b = o;" ));
692
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Long b = (Long)o;" ));
693
+
694
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Float b = o;" ));
695
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Float b = (Float)o;" ));
696
+
697
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Double b = o;" ));
698
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; Double b = (Double)o;" ));
699
+
700
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; ArrayList b = o;" ));
701
+ expectScriptThrows (ClassCastException .class , () -> exec ("boolean o = true; ArrayList b = (ArrayList)o;" ));
702
+ }
703
+
704
+ public void testBoxedBooleanCasts () {
705
+ exec ("Boolean o = Boolean.valueOf(true); Object n = o;" );
706
+ exec ("Boolean o = null; Object n = o;" );
707
+ exec ("Boolean o = Boolean.valueOf(true); Object n = (Object)o;" );
708
+ exec ("Boolean o = null; Object n = (Object)o;" );
709
+
710
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Number n = o;" ));
711
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Number n = o;" ));
712
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Number n = (Boolean)o;" ));
713
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Number n = (Boolean)o;" ));
714
+
715
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); boolean b = o;" ));
716
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; boolean b = o;" ));
717
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); boolean b = (boolean)o;" ));
718
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; boolean b = (boolean)o;" ));
719
+
720
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); byte b = o;" ));
721
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; byte b = o;" ));
722
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); byte b = (byte)o;" ));
723
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; byte b = (byte)o;" ));
724
+
725
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); short b = o;" ));
726
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; short b = o;" ));
727
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); short b = (short)o;" ));
728
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; short b = (short)o;" ));
729
+
730
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); char b = o;" ));
731
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; char b = o;" ));
732
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); char b = (char)o;" ));
733
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; char b = (char)o;" ));
734
+
735
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); int b = o;" ));
736
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; int b = o;" ));
737
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); int b = (int)o;" ));
738
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; int b = (int)o;" ));
739
+
740
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); long b = o;" ));
741
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; long b = o;" ));
742
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); long b = (long)o;" ));
743
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; long b = (long)o;" ));
744
+
745
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); float b = o;" ));
746
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; float b = o;" ));
747
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); float b = (float)o;" ));
748
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; float b = (float)o;" ));
749
+
750
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); double b = o;" ));
751
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; double b = o;" ));
752
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); double b = (double)o;" ));
753
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; double b = (double)o;" ));
754
+
755
+ exec ("Boolean o = Boolean.valueOf(true); Boolean b = o;" );
756
+ exec ("Boolean o = null; Boolean b = o;" );
757
+ exec ("Boolean o = Boolean.valueOf(true); Boolean b = (Boolean)o;" );
758
+ exec ("Boolean o = null; Boolean b = (Boolean)o;" );
759
+
760
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Byte b = o;" ));
761
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Byte b = o;" ));
762
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Byte b = (Byte)o;" ));
763
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Byte b = (Byte)o;" ));
764
+
765
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Short b = o;" ));
766
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Short b = o;" ));
767
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Short b = (Short)o;" ));
768
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Short b = (Short)o;" ));
769
+
770
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Character b = o;" ));
771
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Character b = o;" ));
772
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Character b = (Character)o;" ));
773
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Character b = (Character)o;" ));
774
+
775
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Integer b = o;" ));
776
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Integer b = o;" ));
777
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Integer b = (Integer)o;" ));
778
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Integer b = (Integer)o;" ));
779
+
780
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Long b = o;" ));
781
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Long b = o;" ));
782
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Long b = (Long)o;" ));
783
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Long b = (Long)o;" ));
784
+
785
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Float b = o;" ));
786
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Float b = o;" ));
787
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Float b = (Float)o;" ));
788
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Float b = (Float)o;" ));
789
+
790
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Double b = o;" ));
791
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Double b = o;" ));
792
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); Double b = (Double)o;" ));
793
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = null; Double b = (Double)o;" ));
794
+
795
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); ArrayList b = o;" ));
796
+ expectScriptThrows (ClassCastException .class , () -> exec ("Boolean o = Boolean.valueOf(true); ArrayList b = (ArrayList)o;" ));
797
+ }
644
798
}
0 commit comments