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 +1/−2
- source/library/Imp.hs +6/−2
- source/library/Imp/Extra/HsModule.hs +0/−7
- source/library/Imp/Extra/Located.hs +0/−6
- source/test-suite/Main.hs +6/−0
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