packages feed

haskell-tools-refactor 0.3.0.0 → 0.3.0.1

raw patch · 9 files changed

+16/−32 lines, 9 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Language.Haskell.Tools.Refactor: annMaybe :: RefMonads w r => Reference w r (MU *) (MU *) (AnnMaybeG elem0 dom0 stage0) (AnnMaybeG elem0 dom0 stage0) (Maybe (Ann elem0 dom0 stage0)) (Maybe (Ann elem0 dom0 stage0))
+ Language.Haskell.Tools.Refactor: shortShowSpan :: SrcSpan -> String

Files

Language/Haskell/Tools/Refactor.hs view
@@ -9,7 +9,8 @@   , module Language.Haskell.Tools.Refactor.Prepare
   , module Language.Haskell.Tools.Refactor.ListOperations
   , module Language.Haskell.Tools.Refactor.BindingElem
-  , HasRange(..), annListElems, annList, annJust, isAnnNothing, Domain
+  , HasRange(..), annListElems, annList, annJust, annMaybe, isAnnNothing, Domain
+  , shortShowSpan
   ) where
 
 -- Important: Haddock doesn't support the rename all exported modules and export them at once hack
Language/Haskell/Tools/Refactor/Predefined/DataToNewtype.hs view
@@ -1,8 +1,7 @@ module Language.Haskell.Tools.Refactor.Predefined.DataToNewtype (dataToNewtype) where
 
-import Control.Reference
-
 import Language.Haskell.Tools.Refactor
+import Control.Reference
 
 tryItOut moduleName = tryRefactor (localRefactoring $ dataToNewtype) moduleName
 
Language/Haskell/Tools/Refactor/Predefined/DollarApp.hs view
@@ -11,7 +11,7 @@ import BasicTypes (Fixity(..))
 
 import Control.Monad.State
-import Control.Reference hiding (element)
+import Control.Reference
 import Data.Generics.Uniplate.Data
 import Debug.Trace
 
Language/Haskell/Tools/Refactor/Predefined/ExtractBinding.hs view
@@ -18,7 +18,7 @@ import Data.Char
 import Data.Maybe
 import Data.Generics.Uniplate.Data
-import Control.Reference hiding (element)
+import Control.Reference
 import Control.Monad.State
 
 import Language.Haskell.Tools.Refactor
Language/Haskell/Tools/Refactor/Predefined/GenerateExports.hs view
@@ -5,18 +5,13 @@            #-}
 module Language.Haskell.Tools.Refactor.Predefined.GenerateExports (generateExports, DomGenerateExports) where
 
-import Control.Reference hiding (element)
+import Language.Haskell.Tools.Refactor
+import Control.Reference
 
 import qualified GHC
 
 import Data.Maybe
 import Control.Applicative ((<|>))
-
-import Language.Haskell.Tools.AST
-import Language.Haskell.Tools.Transform
-import Language.Haskell.Tools.AST.Rewrite
-import Language.Haskell.Tools.AST.ElementTypes
-import Language.Haskell.Tools.Refactor.RefactorBase
 
 type DomGenerateExports dom = (Domain dom, HasNameInfo dom)
 
Language/Haskell/Tools/Refactor/Predefined/GenerateTypeSignature.hs view
@@ -22,7 +22,7 @@ import Data.Generics.Uniplate.Data
 import Control.Monad
 import Control.Monad.State
-import Control.Reference hiding (element)
+import Control.Reference
 
 import Language.Haskell.Tools.Refactor as AST
 
Language/Haskell/Tools/Refactor/Predefined/IfToGuards.hs view
@@ -1,26 +1,20 @@ {-# LANGUAGE RankNTypes, FlexibleContexts, ViewPatterns #-}
 module Language.Haskell.Tools.Refactor.Predefined.IfToGuards (ifToGuards) where
 
-import Language.Haskell.Tools.AST
-import Language.Haskell.Tools.AST.Rewrite
-import Language.Haskell.Tools.Refactor.RefactorBase
-
-import Control.Reference hiding (element)
+import Language.Haskell.Tools.Refactor
+import Control.Reference
 import SrcLoc
 import Data.Generics.Uniplate.Data
 
-import Language.Haskell.Tools.AST.ElementTypes
-import Language.Haskell.Tools.Refactor
-
 tryItOut moduleName sp = tryRefactor (localRefactoring $ ifToGuards (readSrcSpan (toFileName "." moduleName) sp)) moduleName
 
 ifToGuards :: Domain dom => RealSrcSpan -> LocalRefactoring dom
-ifToGuards sp = return . (nodesContaining sp .- ifToGuards')
+ifToGuards sp = return . (nodesContaining sp .- changeBindings)
 
-ifToGuards' :: ValueBind dom -> ValueBind dom
-ifToGuards' (SimpleBind (VarPat name) (UnguardedRhs (If pred thenE elseE)) locals) 
+changeBindings :: ValueBind dom -> ValueBind dom
+changeBindings (SimpleBind (VarPat name) (UnguardedRhs (If pred thenE elseE)) locals) 
   = mkFunctionBind [mkMatch (mkMatchLhs name []) (createSimpleIfRhss pred thenE elseE) (locals ^. annMaybe) ]
-ifToGuards' fbs@(FunctionBind {}) 
+changeBindings fbs@(FunctionBind {}) 
   = funBindMatches&annList&matchRhs .- trfRhs $ fbs
   where trfRhs :: Rhs dom -> Rhs dom
         trfRhs (UnguardedRhs (If pred thenE elseE)) = createSimpleIfRhss pred thenE elseE
Language/Haskell/Tools/Refactor/Predefined/RenameDefinition.hs view
@@ -25,13 +25,8 @@ import Data.List
 import Data.Maybe
 import Data.Generics.Uniplate.Data
-import Language.Haskell.Tools.AST
-import Language.Haskell.Tools.Transform
-import Language.Haskell.Tools.AST.Rewrite
-import Language.Haskell.Tools.AST.ElementTypes
-import Language.Haskell.Tools.Refactor.RefactorBase
 
-import Debug.Trace
+import Language.Haskell.Tools.Refactor
 
 type DomainRenameDefinition dom = ( HasNameInfo dom, HasScopeInfo dom, HasDefiningInfo dom
                                   , HasImplicitFieldsInfo dom, HasModuleInfo dom )
haskell-tools-refactor.cabal view
@@ -1,5 +1,5 @@ name:                haskell-tools-refactor
-version:             0.3.0.0
+version:             0.3.0.1
 synopsis:            Refactoring Tool for Haskell
 description:         Contains a set of refactorings based on the Haskell-Tools framework to easily transform a Haskell program. For the descriptions of the implemented refactorings, see the homepage.
 homepage:            https://github.com/haskell-tools/haskell-tools