Skip to content

Commit 08c3fe8

Browse files
Use Char's top/bottom, not Int's (#55)
* Use Char's top/bottom, not Int's * Add changelog
1 parent bae4796 commit 08c3fe8

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Breaking changes:
99
New features:
1010

1111
Bugfixes:
12+
- Fix `Char`'s `toEnum` implementation (#55 by @JordanMartinez)
1213

1314
Other improvements:
1415

src/Data/Enum.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ diag :: forall a. a -> Tuple a a
314314
diag a = Tuple a a
315315

316316
charToEnum :: Int -> Maybe Char
317-
charToEnum n | n >= bottom && n <= top = Just (fromCharCode n)
317+
charToEnum n | n >= toCharCode bottom && n <= toCharCode top = Just (fromCharCode n)
318318
charToEnum _ = Nothing
319319

320320
foreign import toCharCode :: Char -> Int

test/Test/Data/Enum.purs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module Test.Data.Enum (testEnum) where
22

33
import Prelude
44

5-
import Data.Enum (class BoundedEnum, class Enum, Cardinality, defaultCardinality, defaultFromEnum, defaultToEnum, downFrom, downFromIncluding, enumFromThenTo, enumFromTo, upFrom, upFromIncluding)
5+
import Data.Enum (class BoundedEnum, class Enum, Cardinality, defaultCardinality, defaultFromEnum, defaultToEnum, downFrom, downFromIncluding, enumFromThenTo, enumFromTo, fromEnum, toEnum, upFrom, upFromIncluding)
66
import Data.Maybe (Maybe(..))
77
import Data.Newtype (unwrap)
88
import Data.NonEmpty ((:|))
@@ -194,3 +194,15 @@ testEnum = do
194194
{ actual: defaultFromEnum (Upto100k 100000)
195195
, expected: 100000
196196
}
197+
198+
log "charToEnum"
199+
assertEqual
200+
{ actual: Nothing :: Maybe Char
201+
, expected: toEnum (top :: Int)
202+
}
203+
204+
log "charToEnum"
205+
assertEqual
206+
{ actual: Just 'a'
207+
, expected: toEnum (fromEnum 'a')
208+
}

0 commit comments

Comments
 (0)