Skip to content

Commit 8ef69ca

Browse files
Add some asserts and comments
1 parent 37e287d commit 8ef69ca

2 files changed

Lines changed: 13 additions & 0 deletions

File tree

core/src/Streamly/Internal/Data/Array.hs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -932,6 +932,7 @@ parseBreakChunksK (Parser pstep initial extract) stream = do
932932
Parser.SPartial 1 s ->
933933
goArray s [] st (Array contents next end)
934934
Parser.SPartial m s -> do
935+
assertM(m <= 1)
935936
let n = 1 - m
936937
assert (n <= Prelude.length (x:backBuf)) (return ())
937938
let src0 = Prelude.take n (x:backBuf)
@@ -942,6 +943,7 @@ parseBreakChunksK (Parser pstep initial extract) stream = do
942943
Parser.SContinue 1 s ->
943944
goArray s (x:backBuf) st (Array contents next end)
944945
Parser.SContinue m s -> do
946+
assertM(m <= 1)
945947
let n = 1 - m
946948
assert (n <= Prelude.length (x:backBuf)) (return ())
947949
let (src0, buf1) = Prelude.splitAt n (x:backBuf)
@@ -953,6 +955,7 @@ parseBreakChunksK (Parser pstep initial extract) stream = do
953955
let arr = Array contents next end
954956
return (Right b, StreamK.cons arr st)
955957
Parser.SDone m b -> do
958+
assertM(m <= 1)
956959
let n = 1 - m
957960
assert (n <= Prelude.length (x:backBuf)) (return ())
958961
let src0 = Prelude.take n (x:backBuf)
@@ -980,6 +983,7 @@ parseBreakChunksK (Parser pstep initial extract) stream = do
980983
Parser.SPartial 1 s ->
981984
goExtract s [] (Array contents next end)
982985
Parser.SPartial m s -> do
986+
assertM(m <= 1)
983987
let n = 1 - m
984988
assert (n <= Prelude.length (x:backBuf)) (return ())
985989
let src0 = Prelude.take n (x:backBuf)
@@ -990,6 +994,7 @@ parseBreakChunksK (Parser pstep initial extract) stream = do
990994
Parser.SContinue 1 s ->
991995
goExtract s backBuf (Array contents next end)
992996
Parser.SContinue m s -> do
997+
assertM(m <= 1)
993998
let n = 1 - m
994999
assert (n <= Prelude.length (x:backBuf)) (return ())
9951000
let (src0, buf1) = Prelude.splitAt n (x:backBuf)
@@ -1001,6 +1006,7 @@ parseBreakChunksK (Parser pstep initial extract) stream = do
10011006
let arr = Array contents next end
10021007
return (Right b, StreamK.fromPure arr)
10031008
Parser.SDone m b -> do
1009+
assertM(m <= 1)
10041010
let n = 1 - m
10051011
assert (n <= Prelude.length backBuf) (return ())
10061012
let src0 = Prelude.take n (x:backBuf)
@@ -1026,6 +1032,7 @@ parseBreakChunksK (Parser pstep initial extract) stream = do
10261032
Parser.SContinue 1 s ->
10271033
goStop s backBuf
10281034
Parser.SContinue m s -> do
1035+
assertM(m <= 1)
10291036
let n = 1 - m
10301037
assert (n <= Prelude.length backBuf) (return ())
10311038
let (src0, buf1) = Prelude.splitAt n backBuf
@@ -1034,6 +1041,7 @@ parseBreakChunksK (Parser pstep initial extract) stream = do
10341041
Parser.SDone 1 b ->
10351042
return (Right b, StreamK.nil)
10361043
Parser.SDone m b -> do
1044+
assertM(m <= 1)
10371045
let n = 1 - m
10381046
assert (n <= Prelude.length backBuf) (return ())
10391047
let src0 = Prelude.take n backBuf

core/src/Streamly/Internal/Data/Parser/Type.hs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,11 @@ instance Functor (Initial s) where
293293
--
294294
-- Folds can only return the right values. Parsers can also return lefts.
295295

296+
-- XXX If we assume that the current position of the stream includes the
297+
-- element being processed then we can use 'SPartial 0' in the common cases, no
298+
-- change from current, and the change required would be just inverting the
299+
-- sign of the arguments.
300+
296301
-- | The return type of a 'Parser' step.
297302
--
298303
-- The parser driver feeds the input stream to the parser one element at a

0 commit comments

Comments
 (0)