Blame test/Util.hs

Packit 220b39
{-# LANGUAGE CPP #-}
Packit 220b39
module Util (SrcLoc(..), mapLocations) where
Packit 220b39
Packit 220b39
#if MIN_VERSION_base(4,8,1) && !MIN_VERSION_base(4,9,0)
Packit 220b39
import qualified GHC.SrcLoc as GHC
Packit 220b39
import           Data.CallStack hiding (SrcLoc(..))
Packit 220b39
Packit 220b39
data SrcLoc = SrcLoc {
Packit 220b39
  srcLocPackage :: String
Packit 220b39
, srcLocModule :: String
Packit 220b39
, srcLocFile :: String
Packit 220b39
, srcLocStartLine :: Int
Packit 220b39
, srcLocStartCol :: Int
Packit 220b39
, srcLocEndLine :: Int
Packit 220b39
, srcLocEndCol :: Int
Packit 220b39
} deriving (Eq, Show)
Packit 220b39
Packit 220b39
mapLocations :: CallStack -> [(String, SrcLoc)]
Packit 220b39
mapLocations = map (fmap mapLocation)
Packit 220b39
  where
Packit 220b39
    mapLocation location = SrcLoc {
Packit 220b39
      srcLocPackage = GHC.srcLocPackage location
Packit 220b39
    , srcLocModule = GHC.srcLocModule location
Packit 220b39
    , srcLocFile = GHC.srcLocFile location
Packit 220b39
    , srcLocStartLine = GHC.srcLocStartLine location
Packit 220b39
    , srcLocStartCol = GHC.srcLocStartCol location
Packit 220b39
    , srcLocEndLine = GHC.srcLocEndLine location
Packit 220b39
    , srcLocEndCol = GHC.srcLocEndCol location
Packit 220b39
    }
Packit 220b39
#else
Packit 220b39
import           Data.CallStack
Packit 220b39
mapLocations :: CallStack -> CallStack
Packit 220b39
mapLocations = id
Packit 220b39
#endif