apply-refact 0.9.0.0 → 0.9.1.0
raw patch · 3 files changed
+16/−5 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG +3/−0
- apply-refact.cabal +1/−1
- src/Refact/Internal.hs +12/−4
CHANGELOG view
@@ -1,3 +1,6 @@+v0.9.1.0++ * #109, Use the correct DynFlags when parsing refactoring templates v0.9.0.0
apply-refact.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4 name: apply-refact-version: 0.9.0.0+version: 0.9.1.0 synopsis: Perform refactorings specified by the refact library. description: Perform refactorings specified by the refact library. It is primarily used with HLint's --refactor flag. license: BSD-3-Clause
src/Refact/Internal.hs view
@@ -35,6 +35,7 @@ import Data.Functor.Identity (Identity(..)) import Data.Generics (everywhereM, extM, listify, mkM, mkQ, something) import Data.Generics.Uniplate.Data (transformBi, transformBiM, universeBi)+import Data.IORef.Extra import qualified Data.Map as Map import Data.Maybe (catMaybes, fromMaybe, listToMaybe, mapMaybe) import Data.List.Extra@@ -59,6 +60,7 @@ import StringBuffer (stringToStringBuffer) import System.IO.Error (mkIOError) import System.IO.Extra+import System.IO.Unsafe (unsafePerformIO) import Debug.Trace @@ -606,8 +608,9 @@ let replExprLocation = pos uniqueName = "template" ++ show seed - (relat, template) <- withDynFlags (\d -> parser d uniqueName orig) >>=- either (onError "replaceWorked") pure+ (relat, template) <- do+ flags <- maybe (withDynFlags id) pure =<< readIORef dynFlagsRef+ either (onError "replaceWorker") pure $ parser flags uniqueName orig (newExpr, (newAnns, newKeyMap)) <- runStateT@@ -773,11 +776,10 @@ -- TODO: report error properly. Left err -> pure . Left $ mkErr initFlags (UnhelpfulSpan mempty) err Right flags -> do- _ <- GHC.setSessionDynFlags flags+ liftIO $ writeIORef' dynFlagsRef (Just flags) res <- parseModuleApiAnnsWithCppInternal defaultCppOptions flags fp pure $ postParseTransform res rigidLayout - -- | Parse the input into (enabled extensions, disabled extensions, invalid input). -- Implied extensions are automatically added. For example, @FunctionalDependencies@ -- implies @MultiParamTypeClasses@, and @RebindableSyntax@ implies @NoImplicitPrelude@.@@ -873,3 +875,9 @@ , (StandaloneKindSignatures, False, CUSKs) #endif ]++-- TODO: This is added to avoid a breaking change. We should remove it and+-- directly pass the `DynFlags` as arguments, before the 0.10 release.+dynFlagsRef :: IORef (Maybe DynFlags)+dynFlagsRef = unsafePerformIO $ newIORef Nothing+{-# NOINLINE dynFlagsRef #-}