Add HasCallStack to unsafe* functions (#129)

Co-authored-by: Adam Wespiser <adamwespiser@gmail.com>
This commit is contained in:
Luc Tielen
2022-02-21 14:38:19 -05:00
committed by GitHub
co-authored by Adam Wespiser
parent ee4d94feab
commit f8cf1375d5
+8 -8
View File
@@ -12,33 +12,33 @@ module Protolude.Unsafe (
unsafeRead, unsafeRead,
) where ) where
import Protolude.Base (Int) import Protolude.Base (Int, HasCallStack)
import Data.Char (Char) import Data.Char (Char)
import Text.Read (Read, read) import Text.Read (Read, read)
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Maybe as Maybe import qualified Data.Maybe as Maybe
import qualified Control.Exception as Exc import qualified Control.Exception as Exc
unsafeHead :: [a] -> a unsafeHead :: HasCallStack => [a] -> a
unsafeHead = List.head unsafeHead = List.head
unsafeTail :: [a] -> [a] unsafeTail :: HasCallStack => [a] -> [a]
unsafeTail = List.tail unsafeTail = List.tail
unsafeInit :: [a] -> [a] unsafeInit :: HasCallStack => [a] -> [a]
unsafeInit = List.init unsafeInit = List.init
unsafeLast :: [a] -> a unsafeLast :: HasCallStack => [a] -> a
unsafeLast = List.last unsafeLast = List.last
unsafeFromJust :: Maybe.Maybe a -> a unsafeFromJust :: HasCallStack => Maybe.Maybe a -> a
unsafeFromJust = Maybe.fromJust unsafeFromJust = Maybe.fromJust
unsafeIndex :: [a] -> Int -> a unsafeIndex :: HasCallStack => [a] -> Int -> a
unsafeIndex = (List.!!) unsafeIndex = (List.!!)
unsafeThrow :: Exc.Exception e => e -> a unsafeThrow :: Exc.Exception e => e -> a
unsafeThrow = Exc.throw unsafeThrow = Exc.throw
unsafeRead :: Read a => [Char] -> a unsafeRead :: (HasCallStack, Read a) => [Char] -> a
unsafeRead = Text.Read.read unsafeRead = Text.Read.read