diff --git a/src/Data/Thyme/Format.hs b/src/Data/Thyme/Format.hs index 03eda64..e904c32 100644 --- a/src/Data/Thyme/Format.hs +++ b/src/Data/Thyme/Format.hs @@ -27,6 +27,7 @@ import Data.Bits import qualified Data.ByteString.Char8 as S import Data.Char import Data.Micro +import Data.Int import Data.Thyme.Calendar import Data.Thyme.Calendar.Internal import Data.Thyme.Calendar.MonthDay @@ -358,7 +359,7 @@ timeParser TimeLocale {..} = flip execStateT unixEpoch . go where -- UTCTime 's' -> do s <- lift (negative P.decimal) - _tpPOSIXTime .= fromSeconds (s :: Int) + _tpPOSIXTime .= fromSeconds (s :: Int64) flag IsPOSIXTime .= True go rspec diff --git a/tests/Common.hs b/tests/Common.hs index 97e331e..60275b2 100644 --- a/tests/Common.hs +++ b/tests/Common.hs @@ -4,6 +4,7 @@ module Common where import Prelude import Control.Applicative import Control.Lens +import Data.Int import Data.Thyme import System.Exit import Test.QuickCheck @@ -15,7 +16,8 @@ exit b = exitWith $ if b then ExitSuccess else ExitFailure 1 ------------------------------------------------------------------------ instance Arbitrary Day where - arbitrary = ModifiedJulianDay <$> arbitrary + -- To avoid overflows in Day --> YearMonthDay conversion on 32 bit platforms: + arbitrary = ModifiedJulianDay <$> (fromIntegral :: Int -> Int64) <$> arbitrary instance Arbitrary DiffTime where arbitrary = view microDiffTime <$> arbitrary