doctest 0.9.10.2 → 0.9.11
raw patch · 2 files changed
+12/−14 lines, 2 filesdep +base-compat
Dependencies added: base-compat
Files
- doctest.cabal +2/−1
- src/Property.hs +10/−13
doctest.cabal view
@@ -1,5 +1,5 @@ name: doctest-version: 0.9.10.2+version: 0.9.11 synopsis: Test interactive Haskell examples description: The doctest program checks examples in source code comments. It is modeled after doctest for Python@@ -92,6 +92,7 @@ , ghc-paths , transformers + , base-compat >= 0.4.2 , HUnit , hspec >= 1.5.1 , QuickCheck >= 2.5
src/Property.hs view
@@ -24,8 +24,12 @@ runProperty :: Interpreter -> Expression -> IO PropertyResult runProperty repl expression = do- _ <- Interpreter.eval repl "import Test.QuickCheck (quickCheck, (==>))"- r <- closeTerm expression >>= (Interpreter.safeEval repl . quickCheck)+ _ <- Interpreter.eval repl "import Test.QuickCheck ((==>))"+ _ <- Interpreter.eval repl "import Test.QuickCheck.All (polyQuickCheck)"+ _ <- Interpreter.eval repl "import Language.Haskell.TH (mkName)"+ _ <- Interpreter.eval repl ":set -XTemplateHaskell"+ r <- freeVariables repl expression >>=+ (Interpreter.safeEval repl . quickCheck expression) case r of Left err -> do return (Error err)@@ -35,16 +39,9 @@ let msg = stripEnd (takeWhileEnd (/= '\b') res) return (Failure msg) where- quickCheck term = "quickCheck (" ++ term ++ ")"-- -- | Find all free variables in given term, and close it by abstrating over- -- them.- closeTerm :: String -> IO String- closeTerm term = do- r <- freeVariables repl (quickCheck term)- case r of- [] -> return term- vars -> return ("\\" ++ unwords vars ++ "-> (" ++ term ++ ")")+ quickCheck term vars =+ "let doctest_prop " ++ unwords vars ++ " = " ++ term ++ "\n" +++ "$(polyQuickCheck (mkName \"doctest_prop\"))" -- | Find all free variables in given term. --@@ -69,6 +66,6 @@ -- | Remove quotes from given name, if any. unquote ('`':xs) = init xs #if __GLASGOW_HASKELL__ >= 707- unquote ('\8219':xs) = init xs+ unquote ('\8216':xs) = init xs #endif unquote xs = xs