diff --git a/src/Data/String/CodeUnits.purs b/src/Data/String/CodeUnits.purs index 1b127ef..753a0c0 100644 --- a/src/Data/String/CodeUnits.purs +++ b/src/Data/String/CodeUnits.purs @@ -305,7 +305,7 @@ dropWhile p s = drop (countPrefix p s) s -- | ``` slice :: Int -> Int -> String -> Maybe String slice b e s = if b' < 0 || b' >= l || - e' < 0 || e' >= l || + e' < 0 || e' > l || b' > e' then Nothing else Just (_slice b e s) diff --git a/test/Test/Data/String/CodeUnits.purs b/test/Test/Data/String/CodeUnits.purs index eb35d15..8106ba8 100644 --- a/test/Test/Data/String/CodeUnits.purs +++ b/test/Test/Data/String/CodeUnits.purs @@ -430,6 +430,10 @@ testStringCodeUnits = do { actual: SCU.slice 3 6 "purescript" , expected: Just "esc" } + assertEqual + { actual: SCU.slice 3 10 "purescript" + , expected: Just "escript" + } assertEqual { actual: SCU.slice (-4) (-1) "purescript" , expected: Just "rip"