ghc-exactprint 0.1.0.0 → 0.1.0.1
raw patch · 2 files changed
+190/−191 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- ghc-exactprint.cabal +6/−2
- tests/Test.hs +184/−189
ghc-exactprint.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: ghc-exactprint-version: 0.1.0.0+version: 0.1.0.1 synopsis: ExactPrint for GHC description: Using the API Annotations available from GHC 7.10 RC2, this library provides a means to round trip any* code that can@@ -12,6 +12,8 @@ . The dependency footprint is deliberately kept small so that it can easily be tested against GHC HEAD+ .+ Note: requires GHC 7.10 RC2 or later license: BSD3 license-file: LICENSE@@ -36,7 +38,9 @@ , syb hs-source-dirs: src default-language: Haskell2010-+ -- Note: the following constraint actually requires RC2 or better+ if impl (ghc < 7.10)+ buildable: False Test-Suite test type: exitcode-stdio-1.0
tests/Test.hs view
@@ -3,7 +3,6 @@ module Main where import Language.Haskell.GHC.ExactPrint--- import Language.Haskell.GHC.ExactPrint.Types import Language.Haskell.GHC.ExactPrint.Utils import GHC.Paths ( libdir )@@ -11,8 +10,8 @@ import qualified DynFlags as GHC import qualified FastString as GHC import qualified GHC as GHC-import qualified MonadUtils as GHC-import qualified Outputable as GHC+-- import qualified MonadUtils as GHC+-- import qualified Outputable as GHC import qualified GHC.SYB.Utils as SYB @@ -33,89 +32,90 @@ -- tests = TestCase (do r <- manipulateAstTest "examples/LetStmt.hs" "Layout.LetStmt" -- assertBool "test" r ) +tests :: Test tests = TestList [- mkTestMod "examples/LetStmt.hs" "Layout.LetStmt"- , mkTestMod "examples/LetExpr.hs" "LetExpr"- , mkTestMod "examples/ExprPragmas.hs" "ExprPragmas"- , mkTestMod "examples/ListComprehensions.hs" "Main"- , mkTestMod "examples/MonadComprehensions.hs" "Main"- , mkTestMod "examples/FunDeps.hs" "Main"- , mkTestMod "examples/ImplicitParams.hs" "Main"- , mkTestMod "examples/RecursiveDo.hs" "Main"- , mkTestMod "examples/TypeFamilies.hs" "Main"- , mkTestMod "examples/MultiParamTypeClasses.hs" "Main"- , mkTestMod "examples/DataFamilies.hs" "DataFamilies"- , mkTestMod "examples/Deriving.hs" "Main"- , mkTestMod "examples/Default.hs" "Main"- , mkTestMod "examples/ForeignDecl.hs" "ForeignDecl"- , mkTestMod "examples/Warning.hs" "Warning"- , mkTestMod "examples/Annotations.hs" "Annotations"- , mkTestMod "examples/DocDecls.hs" "DocDecls"- , mkTestModTH "examples/QuasiQuote.hs" "QuasiQuote"- , mkTestMod "examples/Roles.hs" "Roles"- , mkTestMod "examples/Splice.hs" "Splice"- , mkTestMod "examples/ImportsSemi.hs" "ImportsSemi"- , mkTestMod "examples/Stmts.hs" "Stmts"- , mkTestMod "examples/Mixed.hs" "Main"- , mkTestMod "examples/Arrow.hs" "Arrow"- , mkTestMod "examples/PatSynBind.hs" "Main"- , mkTestMod "examples/HsDo.hs" "HsDo"- , mkTestMod "examples/ForAll.hs" "ForAll"- , mkTestMod "examples/PArr.hs" "PArr"- , mkTestMod "examples/ViewPatterns.hs" "Main"- , mkTestMod "examples/BangPatterns.hs" "Main"- , mkTestMod "examples/Associated.hs" "Main"- , mkTestMod "examples/Move1.hs" "Move1"- , mkTestMod "examples/Rules.hs" "Rules"- , mkTestMod "examples/TypeOperators.hs" "Main"- , mkTestMod "examples/NullaryTypeClasses.hs" "Main"- , mkTestMod "examples/FunctionalDeps.hs" "Main"- , mkTestMod "examples/DerivingOC.hs" "Main"- , mkTestMod "examples/GenericDeriving.hs" "Main"- , mkTestMod "examples/OverloadedStrings.hs" "Main"- , mkTestMod "examples/RankNTypes.hs" "Main"- , mkTestMod "examples/Existential.hs" "Main"- , mkTestMod "examples/ScopedTypeVariables.hs" "Main"- , mkTestMod "examples/Arrows.hs" "Main"- , mkTestMod "examples/TH.hs" "Main"- , mkTestMod "examples/StaticPointers.hs" "Main"- , mkTestMod "examples/DataDecl.hs" "Main"- , mkTestMod "examples/Guards.hs" "Main"- , mkTestMod "examples/RebindableSyntax.hs" "Main"- , mkTestMod "examples/RdrNames.hs" "RdrNames"- , mkTestMod "examples/Vect.hs" "Vect"- , mkTestMod "examples/Tuple.hs" "Main"- , mkTestMod "examples/ExtraConstraints1.hs" "ExtraConstraints1"- , mkTestMod "examples/AddAndOr3.hs" "AddAndOr3"- , mkTestMod "examples/Ann01.hs" "Ann01"- , mkTestMod "examples/StrictLet.hs" "Main"- , mkTestMod "examples/Cg008.hs" "Cg008"- , mkTestMod "examples/T2388.hs" "T2388"- , mkTestMod "examples/T3132.hs" "T3132"- , mkTestMod "examples/Stream.hs" "Stream"- , mkTestMod "examples/Trit.hs" "Trit"- , mkTestMod "examples/DataDecl.hs" "Main"- , mkTestMod "examples/Zipper.hs" "Zipper"- , mkTestMod "examples/Sigs.hs" "Sigs"- , mkTestMod "examples/Utils2.hs" "Utils2"- , mkTestMod "examples/EmptyMostlyInst.hs" "EmptyMostlyInst"- , mkTestMod "examples/EmptyMostlyNoSemis.hs" "EmptyMostlyNoSemis"- , mkTestMod "examples/Dead1.hs" "Dead1"- , mkTestMod "examples/EmptyMostly.hs" "EmptyMostly"- , mkTestMod "examples/FromUtils.hs" "Main"- , mkTestMod "examples/DocDecls.hs" "DocDecls"- , mkTestMod "examples/RecordUpdate.hs" "Main"- -- , mkTestMod "examples/Unicode.hs" "Main"- , mkTestMod "examples/B.hs" "Main"- , mkTestMod "examples/LayoutWhere.hs" "Main"- , mkTestMod "examples/LayoutLet.hs" "Main"- , mkTestMod "examples/Deprecation.hs" "Deprecation"- , mkTestMod "examples/Infix.hs" "Main"- , mkTestMod "examples/BCase.hs" "Main"- , mkTestMod "examples/AltsSemis.hs" "Main"+ mkTestMod "LetStmt.hs" "Layout.LetStmt"+ , mkTestMod "LetExpr.hs" "LetExpr"+ , mkTestMod "ExprPragmas.hs" "ExprPragmas"+ , mkTestMod "ListComprehensions.hs" "Main"+ , mkTestMod "MonadComprehensions.hs" "Main"+ , mkTestMod "FunDeps.hs" "Main"+ , mkTestMod "ImplicitParams.hs" "Main"+ , mkTestMod "RecursiveDo.hs" "Main"+ , mkTestMod "TypeFamilies.hs" "Main"+ , mkTestMod "MultiParamTypeClasses.hs" "Main"+ , mkTestMod "DataFamilies.hs" "DataFamilies"+ , mkTestMod "Deriving.hs" "Main"+ , mkTestMod "Default.hs" "Main"+ , mkTestMod "ForeignDecl.hs" "ForeignDecl"+ , mkTestMod "Warning.hs" "Warning"+ , mkTestMod "Annotations.hs" "Annotations"+ , mkTestMod "DocDecls.hs" "DocDecls"+ , mkTestModTH "QuasiQuote.hs" "QuasiQuote"+ , mkTestMod "Roles.hs" "Roles"+ , mkTestMod "Splice.hs" "Splice"+ , mkTestMod "ImportsSemi.hs" "ImportsSemi"+ , mkTestMod "Stmts.hs" "Stmts"+ , mkTestMod "Mixed.hs" "Main"+ , mkTestMod "Arrow.hs" "Arrow"+ , mkTestMod "PatSynBind.hs" "Main"+ , mkTestMod "HsDo.hs" "HsDo"+ , mkTestMod "ForAll.hs" "ForAll"+ , mkTestMod "PArr.hs" "PArr"+ , mkTestMod "ViewPatterns.hs" "Main"+ , mkTestMod "BangPatterns.hs" "Main"+ , mkTestMod "Associated.hs" "Main"+ , mkTestMod "Move1.hs" "Move1"+ , mkTestMod "Rules.hs" "Rules"+ , mkTestMod "TypeOperators.hs" "Main"+ , mkTestMod "NullaryTypeClasses.hs" "Main"+ , mkTestMod "FunctionalDeps.hs" "Main"+ , mkTestMod "DerivingOC.hs" "Main"+ , mkTestMod "GenericDeriving.hs" "Main"+ , mkTestMod "OverloadedStrings.hs" "Main"+ , mkTestMod "RankNTypes.hs" "Main"+ , mkTestMod "Existential.hs" "Main"+ , mkTestMod "ScopedTypeVariables.hs" "Main"+ , mkTestMod "Arrows.hs" "Main"+ , mkTestMod "TH.hs" "Main"+ , mkTestMod "StaticPointers.hs" "Main"+ , mkTestMod "DataDecl.hs" "Main"+ , mkTestMod "Guards.hs" "Main"+ , mkTestMod "RebindableSyntax.hs" "Main"+ , mkTestMod "RdrNames.hs" "RdrNames"+ , mkTestMod "Vect.hs" "Vect"+ , mkTestMod "Tuple.hs" "Main"+ , mkTestMod "ExtraConstraints1.hs" "ExtraConstraints1"+ , mkTestMod "AddAndOr3.hs" "AddAndOr3"+ , mkTestMod "Ann01.hs" "Ann01"+ , mkTestMod "StrictLet.hs" "Main"+ , mkTestMod "Cg008.hs" "Cg008"+ , mkTestMod "T2388.hs" "T2388"+ , mkTestMod "T3132.hs" "T3132"+ , mkTestMod "Stream.hs" "Stream"+ , mkTestMod "Trit.hs" "Trit"+ , mkTestMod "DataDecl.hs" "Main"+ , mkTestMod "Zipper.hs" "Zipper"+ , mkTestMod "Sigs.hs" "Sigs"+ , mkTestMod "Utils2.hs" "Utils2"+ , mkTestMod "EmptyMostlyInst.hs" "EmptyMostlyInst"+ , mkTestMod "EmptyMostlyNoSemis.hs" "EmptyMostlyNoSemis"+ , mkTestMod "Dead1.hs" "Dead1"+ , mkTestMod "EmptyMostly.hs" "EmptyMostly"+ , mkTestMod "FromUtils.hs" "Main"+ , mkTestMod "DocDecls.hs" "DocDecls"+ , mkTestMod "RecordUpdate.hs" "Main"+ -- , mkTestMod "Unicode.hs" "Main"+ , mkTestMod "B.hs" "Main"+ , mkTestMod "LayoutWhere.hs" "Main"+ , mkTestMod "LayoutLet.hs" "Main"+ , mkTestMod "Deprecation.hs" "Deprecation"+ , mkTestMod "Infix.hs" "Main"+ , mkTestMod "BCase.hs" "Main"+ , mkTestMod "AltsSemis.hs" "Main" - , mkTestMod "examples/LetExprSemi.hs" "LetExprSemi"+ , mkTestMod "LetExprSemi.hs" "LetExprSemi" ] mkTestMain :: FilePath -> Test@@ -134,96 +134,96 @@ -- --------------------------------------------------------------------- -t :: IO Bool-t = do+tt :: IO Bool+tt = do - manipulateAstTest "examples/LetStmt.hs" "Layout.LetStmt"- manipulateAstTest "examples/LetExpr.hs" "LetExpr"- manipulateAstTest "examples/ExprPragmas.hs" "ExprPragmas"- manipulateAstTest "examples/ListComprehensions.hs" "Main"- manipulateAstTest "examples/MonadComprehensions.hs" "Main"- manipulateAstTest "examples/FunDeps.hs" "Main"- manipulateAstTest "examples/ImplicitParams.hs" "Main"- manipulateAstTest "examples/RecursiveDo.hs" "Main"- manipulateAstTest "examples/TypeFamilies.hs" "Main"- manipulateAstTest "examples/MultiParamTypeClasses.hs" "Main"- manipulateAstTest "examples/DataFamilies.hs" "DataFamilies"- manipulateAstTest "examples/Deriving.hs" "Main"- manipulateAstTest "examples/Default.hs" "Main"- manipulateAstTest "examples/ForeignDecl.hs" "ForeignDecl"- manipulateAstTest "examples/Warning.hs" "Warning"- manipulateAstTest "examples/Annotations.hs" "Annotations"- manipulateAstTest "examples/DocDecls.hs" "DocDecls"- manipulateAstTestTH "examples/QuasiQuote.hs" "QuasiQuote"- manipulateAstTest "examples/Roles.hs" "Roles"- manipulateAstTest "examples/Splice.hs" "Splice"- manipulateAstTest "examples/ImportsSemi.hs" "ImportsSemi"- manipulateAstTest "examples/Stmts.hs" "Stmts"- manipulateAstTest "examples/Mixed.hs" "Main"- manipulateAstTest "examples/Arrow.hs" "Arrow"- manipulateAstTest "examples/PatSynBind.hs" "Main"- manipulateAstTest "examples/HsDo.hs" "HsDo"- manipulateAstTest "examples/ForAll.hs" "ForAll"- manipulateAstTest "examples/PArr.hs" "PArr"- manipulateAstTest "examples/ViewPatterns.hs" "Main"- manipulateAstTest "examples/BangPatterns.hs" "Main"- manipulateAstTest "examples/Associated.hs" "Main"- manipulateAstTest "examples/Move1.hs" "Move1"- manipulateAstTest "examples/Rules.hs" "Rules"- manipulateAstTest "examples/TypeOperators.hs" "Main"- manipulateAstTest "examples/NullaryTypeClasses.hs" "Main"- manipulateAstTest "examples/FunctionalDeps.hs" "Main"- manipulateAstTest "examples/DerivingOC.hs" "Main"- manipulateAstTest "examples/GenericDeriving.hs" "Main"- manipulateAstTest "examples/OverloadedStrings.hs" "Main"- manipulateAstTest "examples/RankNTypes.hs" "Main"- manipulateAstTest "examples/Existential.hs" "Main"- manipulateAstTest "examples/ScopedTypeVariables.hs" "Main"- manipulateAstTest "examples/Arrows.hs" "Main"- manipulateAstTest "examples/TH.hs" "Main"- manipulateAstTest "examples/StaticPointers.hs" "Main"- manipulateAstTest "examples/DataDecl.hs" "Main"- manipulateAstTest "examples/Guards.hs" "Main"- manipulateAstTest "examples/RebindableSyntax.hs" "Main"- manipulateAstTest "examples/RdrNames.hs" "RdrNames"- manipulateAstTest "examples/Vect.hs" "Vect"- manipulateAstTest "examples/Tuple.hs" "Main"- manipulateAstTest "examples/ExtraConstraints1.hs" "ExtraConstraints1"- manipulateAstTest "examples/AddAndOr3.hs" "AddAndOr3"- manipulateAstTest "examples/Ann01.hs" "Ann01"- manipulateAstTest "examples/StrictLet.hs" "Main"- manipulateAstTest "examples/Cg008.hs" "Cg008"- manipulateAstTest "examples/T2388.hs" "T2388"- manipulateAstTest "examples/T3132.hs" "T3132"- manipulateAstTest "examples/Stream.hs" "Stream"- manipulateAstTest "examples/Trit.hs" "Trit"- manipulateAstTest "examples/DataDecl.hs" "Main"- manipulateAstTest "examples/Zipper.hs" "Zipper"- manipulateAstTest "examples/Sigs.hs" "Sigs"- manipulateAstTest "examples/Utils2.hs" "Utils2"- manipulateAstTest "examples/EmptyMostlyInst.hs" "EmptyMostlyInst"- manipulateAstTest "examples/EmptyMostlyNoSemis.hs" "EmptyMostlyNoSemis"- manipulateAstTest "examples/Dead1.hs" "Dead1"- manipulateAstTest "examples/EmptyMostly.hs" "EmptyMostly"- manipulateAstTest "examples/FromUtils.hs" "Main"- manipulateAstTest "examples/DocDecls.hs" "DocDecls"- manipulateAstTest "examples/RecordUpdate.hs" "Main"- -- manipulateAstTest "examples/Unicode.hs" "Main"- manipulateAstTest "examples/B.hs" "Main"- manipulateAstTest "examples/LayoutWhere.hs" "Main"- manipulateAstTest "examples/LayoutLet.hs" "Main"- manipulateAstTest "examples/Deprecation.hs" "Deprecation"- manipulateAstTest "examples/Infix.hs" "Main"- manipulateAstTest "examples/BCase.hs" "Main"- manipulateAstTest "examples/AltsSemis.hs" "Main"+ manipulateAstTest "LetStmt.hs" "Layout.LetStmt"+ manipulateAstTest "LetExpr.hs" "LetExpr"+ manipulateAstTest "ExprPragmas.hs" "ExprPragmas"+ manipulateAstTest "ListComprehensions.hs" "Main"+ manipulateAstTest "MonadComprehensions.hs" "Main"+ manipulateAstTest "FunDeps.hs" "Main"+ manipulateAstTest "ImplicitParams.hs" "Main"+ manipulateAstTest "RecursiveDo.hs" "Main"+ manipulateAstTest "TypeFamilies.hs" "Main"+ manipulateAstTest "MultiParamTypeClasses.hs" "Main"+ manipulateAstTest "DataFamilies.hs" "DataFamilies"+ manipulateAstTest "Deriving.hs" "Main"+ manipulateAstTest "Default.hs" "Main"+ manipulateAstTest "ForeignDecl.hs" "ForeignDecl"+ manipulateAstTest "Warning.hs" "Warning"+ manipulateAstTest "Annotations.hs" "Annotations"+ manipulateAstTest "DocDecls.hs" "DocDecls"+ manipulateAstTestTH "QuasiQuote.hs" "QuasiQuote"+ manipulateAstTest "Roles.hs" "Roles"+ manipulateAstTest "Splice.hs" "Splice"+ manipulateAstTest "ImportsSemi.hs" "ImportsSemi"+ manipulateAstTest "Stmts.hs" "Stmts"+ manipulateAstTest "Mixed.hs" "Main"+ manipulateAstTest "Arrow.hs" "Arrow"+ manipulateAstTest "PatSynBind.hs" "Main"+ manipulateAstTest "HsDo.hs" "HsDo"+ manipulateAstTest "ForAll.hs" "ForAll"+ manipulateAstTest "PArr.hs" "PArr"+ manipulateAstTest "ViewPatterns.hs" "Main"+ manipulateAstTest "BangPatterns.hs" "Main"+ manipulateAstTest "Associated.hs" "Main"+ manipulateAstTest "Move1.hs" "Move1"+ manipulateAstTest "Rules.hs" "Rules"+ manipulateAstTest "TypeOperators.hs" "Main"+ manipulateAstTest "NullaryTypeClasses.hs" "Main"+ manipulateAstTest "FunctionalDeps.hs" "Main"+ manipulateAstTest "DerivingOC.hs" "Main"+ manipulateAstTest "GenericDeriving.hs" "Main"+ manipulateAstTest "OverloadedStrings.hs" "Main"+ manipulateAstTest "RankNTypes.hs" "Main"+ manipulateAstTest "Existential.hs" "Main"+ manipulateAstTest "ScopedTypeVariables.hs" "Main"+ manipulateAstTest "Arrows.hs" "Main"+ manipulateAstTest "TH.hs" "Main"+ manipulateAstTest "StaticPointers.hs" "Main"+ manipulateAstTest "DataDecl.hs" "Main"+ manipulateAstTest "Guards.hs" "Main"+ manipulateAstTest "RebindableSyntax.hs" "Main"+ manipulateAstTest "RdrNames.hs" "RdrNames"+ manipulateAstTest "Vect.hs" "Vect"+ manipulateAstTest "Tuple.hs" "Main"+ manipulateAstTest "ExtraConstraints1.hs" "ExtraConstraints1"+ manipulateAstTest "AddAndOr3.hs" "AddAndOr3"+ manipulateAstTest "Ann01.hs" "Ann01"+ manipulateAstTest "StrictLet.hs" "Main"+ manipulateAstTest "Cg008.hs" "Cg008"+ manipulateAstTest "T2388.hs" "T2388"+ manipulateAstTest "T3132.hs" "T3132"+ manipulateAstTest "Stream.hs" "Stream"+ manipulateAstTest "Trit.hs" "Trit"+ manipulateAstTest "DataDecl.hs" "Main"+ manipulateAstTest "Zipper.hs" "Zipper"+ manipulateAstTest "Sigs.hs" "Sigs"+ manipulateAstTest "Utils2.hs" "Utils2"+ manipulateAstTest "EmptyMostlyInst.hs" "EmptyMostlyInst"+ manipulateAstTest "EmptyMostlyNoSemis.hs" "EmptyMostlyNoSemis"+ manipulateAstTest "Dead1.hs" "Dead1"+ manipulateAstTest "EmptyMostly.hs" "EmptyMostly"+ manipulateAstTest "FromUtils.hs" "Main"+ manipulateAstTest "DocDecls.hs" "DocDecls"+ manipulateAstTest "RecordUpdate.hs" "Main"+ -- manipulateAstTest "Unicode.hs" "Main"+ manipulateAstTest "B.hs" "Main"+ manipulateAstTest "LayoutWhere.hs" "Main"+ manipulateAstTest "LayoutLet.hs" "Main"+ manipulateAstTest "Deprecation.hs" "Deprecation"+ manipulateAstTest "Infix.hs" "Main"+ manipulateAstTest "BCase.hs" "Main"+ manipulateAstTest "AltsSemis.hs" "Main" - manipulateAstTest "examples/LetExprSemi.hs" "LetExprSemi"+ manipulateAstTest "LetExprSemi.hs" "LetExprSemi" {-- manipulateAstTest "examples/Cpp.hs" "Main"- manipulateAstTest "examples/Lhs.lhs" "Main"- manipulateAstTest "examples/ParensAroundContext.hs" "ParensAroundContext"- manipulateAstTest "examples/EmptyMostly2.hs" "EmptyMostly2"- manipulateAstTest "examples/Foo.hs" "Main"+ manipulateAstTest "Cpp.hs" "Main"+ manipulateAstTest "Lhs.lhs" "Main"+ manipulateAstTest "ParensAroundContext.hs" "ParensAroundContext"+ manipulateAstTest "EmptyMostly2.hs" "EmptyMostly2"+ manipulateAstTest "Foo.hs" "Main" -} -- | Where all the tests are to be found@@ -240,14 +240,15 @@ manipulateAstTestTH file modname = manipulateAstTest' True file modname manipulateAstTest' :: Bool -> FilePath -> String -> IO Bool-manipulateAstTest' useTH file modname = do- let out = file <.> "out"- golden = file <.> "golden"+manipulateAstTest' useTH file' modname = do+ let testpath = "./tests/examples/"+ file = testpath </> file'+ out = file <.> "out" contents <- readUTF8File file (ghcAnns,t) <- parsedFileGhc file modname useTH let- parsed@(GHC.L l hsmod) = GHC.pm_parsed_source $ GHC.tm_parsed_module t+ parsed = GHC.pm_parsed_source $ GHC.tm_parsed_module t parsedAST = SYB.showData SYB.Parser 0 parsed -- parsedAST = showGhc parsed -- `debug` ("getAnn:=" ++ (show (getAnnotationValue (snd ann) (GHC.getLoc parsed) :: Maybe AnnHsModule)))@@ -255,11 +256,6 @@ ann = annotateAST parsed ghcAnns `debug` ("ghcAnns:" ++ showGhc ghcAnns) - Just (GHC.L le exps) = GHC.hsmodExports hsmod- secondExp@(GHC.L l2 _) = ghead "foo" $ tail exps- ss = GHC.mkSrcSpan (GHC.mkSrcLoc (GHC.mkFastString "examples/PatBind.hs") 16 9)- (GHC.mkSrcLoc (GHC.mkFastString "examples/PatBind.hs") 16 27)- printed = exactPrintAnnotation parsed [] ann -- `debug` ("ann=" ++ (show $ map (\(s,a) -> (ss2span s, a)) $ Map.toList ann)) result = if printed == contents@@ -271,8 +267,7 @@ writeFile out $ result -- putStrLn $ "Test:ann organised:" ++ showGhc (organiseAnns ann) -- putStrLn $ "Test:showdata:" ++ showAnnData (organiseAnns ann) 0 parsed- return ("Match\n" == result)--- }}}+ return ("Match\n" == result) -- ---------------------------------------------------------------------@@ -282,7 +277,7 @@ parsedFileGhc :: String -> String -> Bool -> IO (GHC.ApiAnns,ParseResult) parsedFileGhc fileName modname useTH = do- putStrLn $ "parsedFileGhc:" ++ show fileName+ -- putStrLn $ "parsedFileGhc:" ++ show fileName #if __GLASGOW_HASKELL__ > 704 GHC.defaultErrorHandler GHC.defaultFatalMessager GHC.defaultFlushOut $ do #else@@ -311,18 +306,18 @@ -- else GHC.gopt_set (GHC.gopt_unset dflags''' GHC.Opt_Haddock) -- GHC.Opt_KeepRawTokenStream - (dflags5,args,warns) <- GHC.parseDynamicFlagsCmdLine dflags4 [GHC.noLoc "-package ghc"]- GHC.liftIO $ putStrLn $ "dflags set:(args,warns)" ++ show (map GHC.unLoc args,map GHC.unLoc warns)+ (dflags5,_args,_warns) <- GHC.parseDynamicFlagsCmdLine dflags4 [GHC.noLoc "-package ghc"]+ -- GHC.liftIO $ putStrLn $ "dflags set:(args,warns)" ++ show (map GHC.unLoc args,map GHC.unLoc warns) void $ GHC.setSessionDynFlags dflags5 -- GHC.liftIO $ putStrLn $ "dflags set" target <- GHC.guessTarget fileName Nothing GHC.setTargets [target]- GHC.liftIO $ putStrLn $ "target set:" ++ showGhc (GHC.targetId target)+ -- GHC.liftIO $ putStrLn $ "target set:" ++ showGhc (GHC.targetId target) void $ GHC.load GHC.LoadAllTargets -- Loads and compiles, much as calling make -- GHC.liftIO $ putStrLn $ "targets loaded"- g <- GHC.getModuleGraph- let showStuff ms = show (GHC.moduleNameString $ GHC.moduleName $ GHC.ms_mod ms,GHC.ms_location ms)+ -- g <- GHC.getModuleGraph+ -- let showStuff ms = show (GHC.moduleNameString $ GHC.moduleName $ GHC.ms_mod ms,GHC.ms_location ms) -- GHC.liftIO $ putStrLn $ "module graph:" ++ (intercalate "," (map showStuff g)) modSum <- GHC.getModSummary $ GHC.mkModuleName modname@@ -331,11 +326,11 @@ p <- GHC.parseModule modSum -- GHC.liftIO $ putStrLn $ "got parsedModule" t <- GHC.typecheckModule p- GHC.liftIO $ putStrLn $ "typechecked"+ -- GHC.liftIO $ putStrLn $ "typechecked" -- toks <- GHC.getRichTokenStream (GHC.ms_mod modSum) -- GHC.liftIO $ putStrLn $ "toks" let anns = GHC.pm_annotations p- GHC.liftIO $ putStrLn $ "anns"+ -- GHC.liftIO $ putStrLn $ "anns" return (anns,t) readUTF8File :: FilePath -> IO String