HaRe-0.8.0.0: test/testdata/TypeUtils/VisiblePNs.hs
{-# LANGUAGE CPP #-}
module TypeUtils.VisiblePNs where
import Test.Hspec
-- import Test.QuickCheck
-- import TestUtils
-- import qualified Digraph as GHC
-- import qualified GHC as GHC
-- import qualified HscTypes as GHC
-- import Control.Exception
-- import Control.Monad.State
-- import Data.Maybe
-- import Language.Haskell.GhcMod
-- import Language.Haskell.Refact.Renaming
-- import Language.Haskell.Refact.Utils
-- import Language.Haskell.Refact.Utils.GhcBugWorkArounds
-- import Language.Haskell.Refact.Utils.GhcVersionSpecific
-- import Language.Haskell.Refact.Utils.LocUtils
-- import Language.Haskell.Refact.Utils.Monad
-- import Language.Haskell.Refact.Utils.MonadFunctions
-- import Language.Haskell.Refact.Utils.TypeSyn
-- import Language.Haskell.Refact.Utils.TypeUtils
-- import System.Directory
-- ---------------------------------------------------------------------
main :: IO ()
main = do
hspec spec
spec :: Spec
spec = do
describe "locToExp on ParsedSource" $ do
it "finds the largest leftmost expression contained in a given region #1" $ do
(t, _toks) <- parsedFileBGhc
let modu = yy -- GHC.pm_parsed_source $ GHC.tm_parsed_module t
let (Just expr) = ww -- locToExp (7,7) (7,43) modu -- :: Maybe (GHC.Located (GHC.HsExpr GHC.RdrName))
getLocatedStart expr `shouldBe` (7,9)
getLocatedEnd expr `shouldBe` (7,42)
it "finds the largest leftmost expression contained in a given region #2" $ do
-- ((_, _, mod), toks) <- parsedFileBGhc
(t, _toks) <- parsedFileBGhc
let modu = yy -- GHC.pm_parsed_source $ GHC.tm_parsed_module t
let (Just expr) = (Just xx) -- locToExp (7,7) (7,41) modu :: Maybe (GHC.Located (GHC.HsExpr GHC.RdrName))
getLocatedStart expr `shouldBe` (7,12)
getLocatedEnd expr `shouldBe` (7,19)
-- -------------------------------------------------------------------
describe "getModuleGhc" $ do
it "retrieves a module from an existing module graph" $ do
let
comp = do
loadModuleGraphGhc $ Just ["./test/testdata/M.hs"]
getModuleGhc "./test/testdata/S1.hs"
pr <- getTypecheckedModule
toks <- fetchOrigToks
-- g <- clientModsAndFiles $ GHC.mkModuleName "S1"
let g = undefined
return ((pr,toks),g)
(( ( (t,_)), mg ), _s) <- runRefactGhcState comp
let parsed = zz -- GHC.pm_parsed_source $ GHC.tm_parsed_module t
(show $ getModuleName parsed) `shouldBe` "Just (S1,\"S1\")"
-- showGhc (map (GHC.ms_mod . snd) mg) `shouldBe` "[main:M2, main:M3, main:Main]"
ww = undefined
xx = undefined
yy = undefined
zz = undefined
runRefactGhcState = undefined
parsedFileGhc = undefined
getTypecheckedModule = undefined
fetchOrigToks = undefined
data PosToken = PT
data ParseResult = PR
loadModuleGraphGhc = undefined
getLocatedStart = undefined
getLocatedEnd = undefined
getModuleGhc = undefined
getModuleName= undefined
-- ---------------------------------------------------------------------
-- Helper functions
-- bFileName :: GHC.FastString
-- bFileName = GHC.mkFastString "./test/testdata/TypeUtils/B.hs"
parsedFileBGhc :: IO (ParseResult,[PosToken])
parsedFileBGhc = parsedFileGhc "./test/testdata/TypeUtils/B.hs"
-- parsedFileMGhc :: IO (ParseResult,[PosToken])
-- parsedFileMGhc = parsedFileGhc "./test/testdata/M.hs"
-- ---------------------------------------------------------------------