packages feed

ghc-exactprint 0.5.7.1 → 0.5.8.0

raw patch · 3 files changed

+26/−6 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Language.Haskell.GHC.ExactPrint.AnnotateTypes: annotationsToComments :: forall m_aGvI. MonadFree AnnotationF m_aGvI => [AnnKeywordId] -> m_aGvI ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: annotationsToComments :: forall m_aGvl. MonadFree AnnotationF m_aGvl => [AnnKeywordId] -> m_aGvl ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: countAnns :: forall m_aGsw. MonadFree AnnotationF m_aGsw => AnnKeywordId -> m_aGsw Int
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: countAnns :: forall m_aGs9. MonadFree AnnotationF m_aGs9 => AnnKeywordId -> m_aGs9 Int
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: getSrcSpanForKw :: forall m_aGuD. MonadFree AnnotationF m_aGuD => SrcSpan -> AnnKeywordId -> m_aGuD SrcSpan
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: getSrcSpanForKw :: forall m_aGug. MonadFree AnnotationF m_aGug => SrcSpan -> AnnKeywordId -> m_aGug SrcSpan
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: ifInContext :: forall m_aGzV. MonadFree AnnotationF m_aGzV => Set AstContext -> Annotated () -> Annotated () -> m_aGzV ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: ifInContext :: forall m_aGzy. MonadFree AnnotationF m_aGzy => Set AstContext -> Annotated () -> Annotated () -> m_aGzy ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markAnnBeforeAnn :: forall m_aGD7. MonadFree AnnotationF m_aGD7 => AnnKeywordId -> AnnKeywordId -> m_aGD7 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markAnnBeforeAnn :: forall m_aGCK. MonadFree AnnotationF m_aGCK => AnnKeywordId -> AnnKeywordId -> m_aGCK ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markEOF :: forall m_aFC5. MonadFree AnnotationF m_aFC5 => m_aFC5 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markEOF :: forall m_aFBI. MonadFree AnnotationF m_aFBI => m_aFBI ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markExternal :: forall m_aGn9. MonadFree AnnotationF m_aGn9 => SrcSpan -> AnnKeywordId -> String -> m_aGn9 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markExternal :: forall m_aGmM. MonadFree AnnotationF m_aGmM => SrcSpan -> AnnKeywordId -> String -> m_aGmM ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInside :: forall m_aGm8. MonadFree AnnotationF m_aGm8 => AnnKeywordId -> m_aGm8 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInside :: forall m_aGlL. MonadFree AnnotationF m_aGlL => AnnKeywordId -> m_aGlL ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInstead :: forall m_aGk0. MonadFree AnnotationF m_aGk0 => AnnKeywordId -> KeywordId -> m_aGk0 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInstead :: forall m_aGjD. MonadFree AnnotationF m_aGjD => AnnKeywordId -> KeywordId -> m_aGjD ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markMany :: forall m_aGog. MonadFree AnnotationF m_aGog => AnnKeywordId -> m_aGog ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markMany :: forall m_aGnT. MonadFree AnnotationF m_aGnT => AnnKeywordId -> m_aGnT ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markManyOptional :: forall m_aGph. MonadFree AnnotationF m_aGph => AnnKeywordId -> m_aGph ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markManyOptional :: forall m_aGoU. MonadFree AnnotationF m_aGoU => AnnKeywordId -> m_aGoU ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrim :: forall m_aGqi. MonadFree AnnotationF m_aGqi => AnnKeywordId -> Int -> Maybe String -> m_aGqi ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrim :: forall m_aGpV. MonadFree AnnotationF m_aGpV => AnnKeywordId -> Int -> Maybe String -> m_aGpV ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrimOptional :: forall m_aGrp. MonadFree AnnotationF m_aGrp => AnnKeywordId -> Int -> Maybe String -> m_aGrp ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrimOptional :: forall m_aGr2. MonadFree AnnotationF m_aGr2 => AnnKeywordId -> Int -> Maybe String -> m_aGr2 ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOutside :: forall m_aGl4. MonadFree AnnotationF m_aGl4 => AnnKeywordId -> KeywordId -> m_aGl4 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOutside :: forall m_aGkH. MonadFree AnnotationF m_aGkH => AnnKeywordId -> KeywordId -> m_aGkH ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPPOptional :: forall m_aGiW. MonadFree AnnotationF m_aGiW => AnnKeywordId -> Maybe String -> m_aGiW ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPPOptional :: forall m_aGiz. MonadFree AnnotationF m_aGiz => AnnKeywordId -> Maybe String -> m_aGiz ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPrim :: forall m_aGhS. MonadFree AnnotationF m_aGhS => AnnKeywordId -> Maybe String -> m_aGhS ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPrim :: forall m_aGhv. MonadFree AnnotationF m_aGhv => AnnKeywordId -> Maybe String -> m_aGhv ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: setContextLevel :: forall m_aGxK. MonadFree AnnotationF m_aGxK => Set AstContext -> Int -> Annotated () -> m_aGxK ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: setContextLevel :: forall m_aGxn. MonadFree AnnotationF m_aGxn => Set AstContext -> Int -> Annotated () -> m_aGxn ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: storeOriginalSrcSpan :: forall m_aGty. MonadFree AnnotationF m_aGty => SrcSpan -> AnnKey -> m_aGty AnnKey
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: storeOriginalSrcSpan :: forall m_aGtb. MonadFree AnnotationF m_aGtb => SrcSpan -> AnnKey -> m_aGtb AnnKey
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: tellContext :: forall m_aGC6. MonadFree AnnotationF m_aGC6 => Set AstContext -> m_aGC6 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: tellContext :: forall m_aGBJ. MonadFree AnnotationF m_aGBJ => Set AstContext -> m_aGBJ ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: unsetContext :: forall m_aGyR. MonadFree AnnotationF m_aGyR => AstContext -> Annotated () -> m_aGyR ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: unsetContext :: forall m_aGyu. MonadFree AnnotationF m_aGyu => AstContext -> Annotated () -> m_aGyu ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKey :: forall m_aGwJ. MonadFree AnnotationF m_aGwJ => [(SrcSpan, Annotated ())] -> m_aGwJ ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKey :: forall m_aGwm. MonadFree AnnotationF m_aGwm => [(SrcSpan, Annotated ())] -> m_aGwm ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKeyContexts :: forall m_aGB2. MonadFree AnnotationF m_aGB2 => ListContexts -> [(SrcSpan, Annotated ())] -> m_aGB2 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKeyContexts :: forall m_aGAF. MonadFree AnnotationF m_aGAF => ListContexts -> [(SrcSpan, Annotated ())] -> m_aGAF ()

Files

ChangeLog view
@@ -1,3 +1,5 @@+2018-09-12 v0.5.8.0+	* Disable use of .ghc.env files when parsing. By @lspitzner 2018-08-11 v0.5.7.0 	* Include support for GHC 8.6.1 beta 1 2018-07-11 v0.5.7.0
ghc-exactprint.cabal view
@@ -1,5 +1,5 @@ name:                ghc-exactprint-version:             0.5.7.1+version:             0.5.8.0 synopsis:            ExactPrint for GHC description:         Using the API Annotations available from GHC 7.10.2, this                      library provides a means to round trip any code that can
src/Language/Haskell/GHC/ExactPrint/Parsers.hs view
@@ -277,7 +277,7 @@       GHC.POk (mkApiAnns -> apianns) pmod  ->         Right $ (apianns, injectedComments, dflags', pmod) --- | Internal function. Exposed if you want to much with DynFlags+-- | Internal function. Exposed if you want to muck with DynFlags -- before parsing. Or after parsing. postParseTransform   :: Either a (GHC.ApiAnns, [Comment], GHC.DynFlags, GHC.ParsedSource)@@ -289,6 +289,11 @@       Right (relativiseApiAnnsWithOptions opts cs m apianns, m)  -- | Internal function. Initializes DynFlags value for parsing.+--+-- Passes "-hide-all-packages" to the GHC API to prevent parsing of+-- package environment files. However this only works if there is no+-- invocation of `setSessionDynFlags` before calling `initDynFlags`.+-- See ghc tickets #15513, #15541. initDynFlags :: GHC.GhcMonad m => FilePath -> m GHC.DynFlags initDynFlags file = do   dflags0         <- GHC.getSessionDynFlags@@ -296,13 +301,22 @@   (dflags1, _, _) <- GHC.parseDynamicFilePragma dflags0 src_opts   -- Turn this on last to avoid T10942   let dflags2 = dflags1 `GHC.gopt_set` GHC.Opt_KeepRawTokenStream-  void $ GHC.setSessionDynFlags dflags2-  return dflags2+  -- Prevent parsing of .ghc.environment.* "package environment files"+  (dflags3, [], []) <- GHC.parseDynamicFlagsCmdLine+    dflags2+    [GHC.noLoc "-hide-all-packages"]+  _ <- GHC.setSessionDynFlags dflags3+  return dflags3  -- | Requires GhcMonad constraint because there is -- no pure variant of `parseDynamicFilePragma`. Yet, in constrast to -- `initDynFlags`, it does not (try to) read the file at filepath, but -- solely depends on the module source in the input string.+--+-- Passes "-hide-all-packages" to the GHC API to prevent parsing of+-- package environment files. However this only works if there is no+-- invocation of `setSessionDynFlags` before calling `initDynFlagsPure`.+-- See ghc tickets #15513, #15541. initDynFlagsPure :: GHC.GhcMonad m => FilePath -> String -> m GHC.DynFlags initDynFlagsPure fp s = do   -- I was told we could get away with using the unsafeGlobalDynFlags.@@ -313,8 +327,12 @@   (dflags1, _, _) <- GHC.parseDynamicFilePragma dflags0 pragmaInfo   -- Turn this on last to avoid T10942   let dflags2 = dflags1 `GHC.gopt_set` GHC.Opt_KeepRawTokenStream-  void $ GHC.setSessionDynFlags dflags2-  return dflags2+  -- Prevent parsing of .ghc.environment.* "package environment files"+  (dflags3, [], []) <- GHC.parseDynamicFlagsCmdLine+    dflags2+    [GHC.noLoc "-hide-all-packages"]+  _ <- GHC.setSessionDynFlags dflags3+  return dflags3  -- ---------------------------------------------------------------------