packages feed

imp 1.0.2.1 → 1.0.3.0

raw patch · 5 files changed

+13/−17 lines, 5 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Imp.Extra.HsModule: overDecls :: Functor f => ([LHsDecl GhcPs] -> f [LHsDecl GhcPs]) -> HsModule GhcPs -> f (HsModule GhcPs)
- Imp.Extra.Located: overValue :: Functor f => (a -> f b) -> Located a -> f (Located b)

Files

imp.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: imp-version: 1.0.2.1+version: 1.0.3.0 synopsis: A GHC plugin for automatically importing modules. description: Imp is a GHC plugin for automatically importing modules. category: Plugin@@ -68,7 +68,6 @@     Imp.Extra.HsModule     Imp.Extra.HsParsedModule     Imp.Extra.ImportDecl-    Imp.Extra.Located     Imp.Extra.ModuleName     Imp.Extra.ParsedResult     Imp.Extra.ReadP
source/library/Imp.hs view
@@ -20,7 +20,6 @@ import qualified Imp.Extra.HsModule as HsModule import qualified Imp.Extra.HsParsedModule as HsParsedModule import qualified Imp.Extra.ImportDecl as ImportDecl-import qualified Imp.Extra.Located as Located import qualified Imp.Extra.ParsedResult as ParsedResult import qualified Imp.Extra.SrcSpanAnnN as SrcSpanAnnN import qualified Imp.Type.Config as Config@@ -87,9 +86,14 @@         Hs.HsModule _ _ _ lImportDecls _ ->           Set.fromList $             fmap (ImportDecl.toModuleName . Plugin.unLoc) lImportDecls+      go ::+        (Data.Data a) =>+        a ->+        StateT.State (Map.Map Plugin.ModuleName Hs.SrcSpanAnnN) a+      go = overData $ updateQualifiedIdentifiers this implicits imports       (newLHsModule, moduleNames) =         StateT.runState-          (Located.overValue (HsModule.overDecls $ overData $ updateQualifiedIdentifiers this implicits imports) lHsModule)+          (go lHsModule)           Map.empty   pure $ fmap (HsModule.overImports $ updateImports this aliases packages moduleNames) newLHsModule 
source/library/Imp/Extra/HsModule.hs view
@@ -2,13 +2,6 @@  import qualified GHC.Hs as Hs -overDecls ::-  (Functor f) =>-  ([Hs.LHsDecl Hs.GhcPs] -> f [Hs.LHsDecl Hs.GhcPs]) ->-  Hs.HsModule Hs.GhcPs ->-  f (Hs.HsModule Hs.GhcPs)-overDecls f x = (\y -> x {Hs.hsmodDecls = y}) <$> f (Hs.hsmodDecls x)- overImports ::   ([Hs.LImportDecl Hs.GhcPs] -> [Hs.LImportDecl Hs.GhcPs]) ->   Hs.HsModule Hs.GhcPs ->
− source/library/Imp/Extra/Located.hs
@@ -1,6 +0,0 @@-module Imp.Extra.Located where--import qualified GHC.Plugins as Plugin--overValue :: (Functor f) => (a -> f b) -> Plugin.Located a -> f (Plugin.Located b)-overValue f (Plugin.L l e) = Plugin.L l <$> f e
source/test-suite/Main.hs view
@@ -116,6 +116,12 @@       "version = Data.SemVer.initial"       "import (implicit) qualified \"semver\" Data.SemVer\nversion = Data.SemVer.initial" +  Hspec.it "handles exports" $ do+    expectImp+      []+      "module Example ( Data.Bool.Bool ) where"+      "module Example (\n        Data.Bool.Bool\n    ) where\nimport (implicit) qualified Data.Bool"+ expectImp :: (Stack.HasCallStack) => [String] -> String -> String -> Hspec.Expectation expectImp arguments input expected = do   before <- parseModule input