@@ -574,6 +574,15 @@ extension Int8: UnsafeRandom, RandomWithMax, RandomWithMin, RandomToValue, Rando
574
574
575
575
}
576
576
577
+ #if swift(>=3.2)
578
+ extension UnsignedInteger where Self: FixedWidthInteger {
579
+ fileprivate var _resigned : Self {
580
+ let bits = Self ( extendingOrTruncating: MemoryLayout < Self > . size * 8 - 1 )
581
+ return self ^ ( 1 &<< bits)
582
+ }
583
+ }
584
+ #endif
585
+
577
586
extension UInt : UnsafeRandom , RandomWithMax , RandomWithMin , RandomToValue , RandomThroughValue , RandomInRange , RandomInClosedRange , RandomWithMaxWidth , RandomWithExactWidth {
578
587
579
588
/// Generates a random value of `Self` using `randomGenerator`.
@@ -585,6 +594,7 @@ extension UInt: UnsafeRandom, RandomWithMax, RandomWithMin, RandomToValue, Rando
585
594
}
586
595
}
587
596
597
+ #if !swift(>=3.2)
588
598
fileprivate var _resigned : UInt {
589
599
let bits : UInt
590
600
#if arch(i386) || arch(arm)
@@ -594,12 +604,9 @@ extension UInt: UnsafeRandom, RandomWithMax, RandomWithMin, RandomToValue, Rando
594
604
#else
595
605
bits = UInt ( bitPattern: MemoryLayout < UInt > . size * 8 - 1 )
596
606
#endif
597
- #if swift(>=3.2)
598
- return self ^ ( 1 &<< bits)
599
- #else
600
- return self ^ ( 1 << bits)
601
- #endif
607
+ return self ^ ( 1 << bits)
602
608
}
609
+ #endif
603
610
604
611
}
605
612
@@ -610,13 +617,11 @@ extension UInt64: UnsafeRandom, RandomWithMax, RandomWithMin, RandomToValue, Ran
610
617
return randomGenerator. random64 ( )
611
618
}
612
619
620
+ #if !swift(>=3.2)
613
621
fileprivate var _resigned : UInt64 {
614
- #if swift(>=3.2)
615
- return self ^ ( 1 &<< 63 )
616
- #else
617
- return self ^ ( 1 << 63 )
618
- #endif
622
+ return self ^ ( 1 << 63 )
619
623
}
624
+ #endif
620
625
621
626
}
622
627
@@ -627,13 +632,11 @@ extension UInt32: UnsafeRandom, RandomWithMax, RandomWithMin, RandomToValue, Ran
627
632
return randomGenerator. random32 ( )
628
633
}
629
634
635
+ #if !swift(>=3.2)
630
636
fileprivate var _resigned : UInt32 {
631
- #if swift(>=3.2)
632
- return self ^ ( 1 &<< 31 )
633
- #else
634
- return self ^ ( 1 << 31 )
635
- #endif
637
+ return self ^ ( 1 << 31 )
636
638
}
639
+ #endif
637
640
638
641
}
639
642
@@ -644,13 +647,11 @@ extension UInt16: UnsafeRandom, RandomWithMax, RandomWithMin, RandomToValue, Ran
644
647
return randomGenerator. random16 ( )
645
648
}
646
649
650
+ #if !swift(>=3.2)
647
651
fileprivate var _resigned : UInt16 {
648
- #if swift(>=3.2)
649
- return self ^ ( 1 &<< 15 )
650
- #else
651
- return self ^ ( 1 << 15 )
652
- #endif
652
+ return self ^ ( 1 << 15 )
653
653
}
654
+ #endif
654
655
655
656
}
656
657
@@ -661,12 +662,10 @@ extension UInt8: UnsafeRandom, RandomWithMax, RandomWithMin, RandomToValue, Rand
661
662
return randomGenerator. random8 ( )
662
663
}
663
664
665
+ #if !swift(>=3.2)
664
666
fileprivate var _resigned : UInt8 {
665
- #if swift(>=3.2)
666
- return self ^ ( 1 &<< 7 )
667
- #else
668
- return self ^ ( 1 << 7 )
669
- #endif
667
+ return self ^ ( 1 << 7 )
670
668
}
669
+ #endif
671
670
672
671
}
0 commit comments