X-Git-Url: https://git.lukelau.me/?a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FCompat.hs;h=e9b2c4c8f2fd7e645b9bf08f5bd0ac4c2bd46e98;hb=a4180c432755f683d07605f4413135d6cfadc065;hp=00f2c0b08b848e94b671b7c0028f98f411ae8c95;hpb=bf56f6dd8c0b0fc34770135819caa54a6410b1df;p=lsp-test.git diff --git a/src/Language/Haskell/LSP/Test/Compat.hs b/src/Language/Haskell/LSP/Test/Compat.hs index 00f2c0b..e9b2c4c 100644 --- a/src/Language/Haskell/LSP/Test/Compat.hs +++ b/src/Language/Haskell/LSP/Test/Compat.hs @@ -1,7 +1,13 @@ {-# LANGUAGE CPP #-} - +-- For some reason ghc warns about not using +-- Control.Monad.IO.Class but it's needed for +-- MonadIO +{-# OPTIONS_GHC -Wunused-imports #-} module Language.Haskell.LSP.Test.Compat where +import Control.Concurrent.Chan +import Control.Monad.IO.Class +import Data.Conduit #ifdef mingw32_HOST_OS @@ -16,3 +22,13 @@ getProcessID :: IO Int getProcessID = fromIntegral <$> P.getProcessID #endif + +#if MIN_VERSION_conduit(1,3,0) +chanSource :: MonadIO m => Chan o -> ConduitT i o m b +#else +chanSource :: MonadIO m => Chan o -> ConduitM i o m b +#endif +chanSource c = do + x <- liftIO $ readChan c + yield x + chanSource c