call-stack 0.3.0 → 0.4.0
raw patch · 5 files changed
+48/−20 lines, 5 filesdep +filepathPVP ok
version bump matches the API change (PVP)
Dependencies added: filepath
API changes (from Hackage documentation)
Files
- call-stack.cabal +7/−2
- src/Data/CallStack.hs +27/−7
- test/Data/CallStackSpec.hs +6/−6
- test/Example.hs +5/−4
- test/Util.hs +3/−1
call-stack.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.3.+-- This file has been generated from package.yaml by hpack version 0.34.4. -- -- see: https://github.com/sol/hpack name: call-stack-version: 0.3.0+version: 0.4.0 synopsis: Use GHC call-stacks in a backward compatible way category: Data homepage: https://github.com/sol/call-stack#readme@@ -25,6 +25,10 @@ ghc-options: -Wall build-depends: base ==4.*+ if os(windows)+ cpp-options: -DWINDOWS+ build-depends:+ filepath exposed-modules: Data.CallStack other-modules:@@ -41,6 +45,7 @@ build-depends: base ==4.* , call-stack+ , filepath , nanospec other-modules: Data.CallStackSpec
src/Data/CallStack.hs view
@@ -4,9 +4,9 @@ #if __GLASGOW_HASKELL__ >= 704 {-# LANGUAGE ConstraintKinds #-}-#define HCS HasCallStack =>+#define HasCallStack_ HasCallStack => #else-#define HCS+#define HasCallStack_ #endif module Data.CallStack (@@ -22,6 +22,10 @@ import Data.Maybe import Data.SrcLoc +#ifdef WINDOWS+import System.FilePath+#endif+ #if MIN_VERSION_base(4,8,1) import qualified GHC.Stack as GHC #endif@@ -37,14 +41,30 @@ type CallStack = [(String, SrcLoc)] -callStack :: HCS CallStack+callStack :: HasCallStack_ CallStack+callStack = workaroundForIssue19236 $ #if MIN_VERSION_base(4,9,0)-callStack = drop 1 $ GHC.getCallStack GHC.callStack+ drop 1 $ GHC.getCallStack GHC.callStack #elif MIN_VERSION_base(4,8,1)-callStack = drop 2 $ GHC.getCallStack ?callStack+ drop 2 $ GHC.getCallStack ?callStack #else-callStack = []+ [] #endif -callSite :: HCS Maybe (String, SrcLoc)+callSite :: HasCallStack_ Maybe (String, SrcLoc) callSite = listToMaybe (reverse callStack)++workaroundForIssue19236 :: CallStack -> CallStack -- https://gitlab.haskell.org/ghc/ghc/-/issues/19236+workaroundForIssue19236 =+#ifdef WINDOWS+ map (fmap fixSrcLoc)+ where+ fixSrcLoc :: SrcLoc -> SrcLoc+ fixSrcLoc loc = loc { srcLocFile = fixPath $ srcLocFile loc }++ fixPath :: FilePath -> FilePath+ fixPath =+ joinPath . splitDirectories+#else+ id+#endif
test/Data/CallStackSpec.hs view
@@ -15,10 +15,10 @@ , SrcLoc { srcLocPackage = "main" , srcLocModule = "Example"- , srcLocFile = "test/Example.hs"- , srcLocStartLine = 17+ , srcLocFile = "test" </> "Example.hs"+ , srcLocStartLine = 18 , srcLocStartCol = 7- , srcLocEndLine = 17+ , srcLocEndLine = 18 , srcLocEndCol = 10 } )@@ -26,10 +26,10 @@ , SrcLoc { srcLocPackage = "main" , srcLocModule = "Example"- , srcLocFile = "test/Example.hs"- , srcLocStartLine = 14+ , srcLocFile = "test" </> "Example.hs"+ , srcLocStartLine = 15 , srcLocStartCol = 8- , srcLocEndLine = 14+ , srcLocEndLine = 15 , srcLocEndCol = 11 } )
test/Example.hs view
@@ -2,10 +2,11 @@ #if __GLASGOW_HASKELL__ >= 704 {-# LANGUAGE ConstraintKinds #-}-#define HCS HasCallStack =>+#define HasCallStack_ HasCallStack => #else-#define HCS+#define HasCallStack_ #endif+ module Example where import Data.CallStack@@ -13,8 +14,8 @@ test :: CallStack test = foo -foo :: HCS CallStack+foo :: HasCallStack_ CallStack foo = bar -bar :: HCS CallStack+bar :: HasCallStack_ CallStack bar = callStack
test/Util.hs view
@@ -1,5 +1,7 @@ {-# LANGUAGE CPP #-}-module Util (SrcLoc(..), mapLocations) where+module Util (SrcLoc(..), mapLocations, (</>)) where++import System.FilePath #if MIN_VERSION_base(4,8,1) && !MIN_VERSION_base(4,9,0) import qualified GHC.SrcLoc as GHC