Description
genEnum crashes when given an empty group because choose receives an invalid range.
Location
src/Codec/CBOR/Cuddle/CBOR/Gen.hs, genEnum function
Details
genEnum tree = case tree of
CTree.Group trees -> do
ix <- choose (0, length trees - 1)
genForCTree $ trees !! ix
When trees is empty, choose (0, length trees - 1) becomes choose (0, -1), which is an invalid range.
Suggested fix
Handle empty groups explicitly with a clear error message before calling choose.
Description
genEnumcrashes when given an empty group becausechoosereceives an invalid range.Location
src/Codec/CBOR/Cuddle/CBOR/Gen.hs,genEnumfunctionDetails
When
treesis empty,choose (0, length trees - 1)becomeschoose (0, -1), which is an invalid range.Suggested fix
Handle empty groups explicitly with a clear error message before calling
choose.