@@ -43,15 +43,12 @@ import Control.Exception (assert)
43
43
import Data.Bits ((.&.) )
44
44
import Data.Text.Internal.Unsafe.Char (ord )
45
45
import Data.Text.Internal.Unsafe.Shift (shiftR )
46
+ import GHC.Exts
46
47
import GHC.Word (Word8 (.. ))
47
48
48
- #if MIN_VERSION_base(4,16,0)
49
- import GHC.Exts
50
- #else
51
- import GHC.Exts hiding ( extendWord8 # )
52
- extendWord8# :: Word # -> Word #
53
- extendWord8# w = w
54
- {-# INLINE extendWord8# #-}
49
+ #if !MIN_VERSION_base(4,16,0)
50
+ -- harmless to import, except for warnings that it is unused.
51
+ import Data.Text.Internal.PrimCompat (word8ToWord #)
55
52
#endif
56
53
57
54
default (Int )
@@ -102,18 +99,18 @@ ord4 c =
102
99
chr2 :: Word8 -> Word8 -> Char
103
100
chr2 (W8 # x1# ) (W8 # x2# ) = C # (chr# (z1# +# z2# ))
104
101
where
105
- ! y1# = word2Int# (extendWord8 # x1# )
106
- ! y2# = word2Int# (extendWord8 # x2# )
102
+ ! y1# = word2Int# (word8ToWord # x1# )
103
+ ! y2# = word2Int# (word8ToWord # x2# )
107
104
! z1# = uncheckedIShiftL# (y1# -# 0xC0 # ) 6 #
108
105
! z2# = y2# -# 0x80 #
109
106
{-# INLINE chr2 #-}
110
107
111
108
chr3 :: Word8 -> Word8 -> Word8 -> Char
112
109
chr3 (W8 # x1# ) (W8 # x2# ) (W8 # x3# ) = C # (chr# (z1# +# z2# +# z3# ))
113
110
where
114
- ! y1# = word2Int# (extendWord8 # x1# )
115
- ! y2# = word2Int# (extendWord8 # x2# )
116
- ! y3# = word2Int# (extendWord8 # x3# )
111
+ ! y1# = word2Int# (word8ToWord # x1# )
112
+ ! y2# = word2Int# (word8ToWord # x2# )
113
+ ! y3# = word2Int# (word8ToWord # x3# )
117
114
! z1# = uncheckedIShiftL# (y1# -# 0xE0 # ) 12 #
118
115
! z2# = uncheckedIShiftL# (y2# -# 0x80 # ) 6 #
119
116
! z3# = y3# -# 0x80 #
@@ -123,10 +120,10 @@ chr4 :: Word8 -> Word8 -> Word8 -> Word8 -> Char
123
120
chr4 (W8 # x1# ) (W8 # x2# ) (W8 # x3# ) (W8 # x4# ) =
124
121
C # (chr# (z1# +# z2# +# z3# +# z4# ))
125
122
where
126
- ! y1# = word2Int# (extendWord8 # x1# )
127
- ! y2# = word2Int# (extendWord8 # x2# )
128
- ! y3# = word2Int# (extendWord8 # x3# )
129
- ! y4# = word2Int# (extendWord8 # x4# )
123
+ ! y1# = word2Int# (word8ToWord # x1# )
124
+ ! y2# = word2Int# (word8ToWord # x2# )
125
+ ! y3# = word2Int# (word8ToWord # x3# )
126
+ ! y4# = word2Int# (word8ToWord # x4# )
130
127
! z1# = uncheckedIShiftL# (y1# -# 0xF0 # ) 18 #
131
128
! z2# = uncheckedIShiftL# (y2# -# 0x80 # ) 12 #
132
129
! z3# = uncheckedIShiftL# (y3# -# 0x80 # ) 6 #
0 commit comments