packages feed

HaRe 0.8.1.0 → 0.8.1.1

raw patch · 10 files changed

+74/−207 lines, 10 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Language.Haskell.Refact.API: class (Data t, Data t1) => Update t t1
- Language.Haskell.Refact.API: defaultExp :: HsExpP
- Language.Haskell.Refact.API: defaultName :: Name
- Language.Haskell.Refact.API: defaultPN :: PName
- Language.Haskell.Refact.API: renamePN' :: (Data t) => Name -> Name -> Bool -> t -> RefactGhc t
- Language.Haskell.Refact.API: showEntities :: (t -> String) -> [t] -> String
- Language.Haskell.Refact.API: showPNwithLoc :: Located Name -> String
- Language.Haskell.Refact.API: update :: Update t t1 => t -> t -> t1 -> RefactGhc t1
- Language.Haskell.Refact.Utils.TypeUtils: defaultExp :: HsExpP
- Language.Haskell.Refact.Utils.TypeUtils: defaultName :: Name
- Language.Haskell.Refact.Utils.TypeUtils: defaultPN :: PName
- Language.Haskell.Refact.Utils.TypeUtils: renamePN' :: (Data t) => Name -> Name -> Bool -> t -> RefactGhc t
- Language.Haskell.Refact.Utils.TypeUtils: showEntities :: (t -> String) -> [t] -> String
- Language.Haskell.Refact.Utils.TypeUtils: showPNwithLoc :: Located Name -> String
- Language.Haskell.Refact.Utils.Utils: class (Data t, Data t1) => Update t t1
- Language.Haskell.Refact.Utils.Utils: instance (Data.Data.Data t, Outputable.OutputableBndr n, PlaceHolder.DataId n) => Language.Haskell.Refact.Utils.Utils.Update (HsPat.LPat n) t
- Language.Haskell.Refact.Utils.Utils: instance (Data.Data.Data t, Outputable.OutputableBndr n, PlaceHolder.DataId n) => Language.Haskell.Refact.Utils.Utils.Update (HsTypes.LHsType n) t
- Language.Haskell.Refact.Utils.Utils: instance (Data.Data.Data t, Outputable.OutputableBndr n, PlaceHolder.DataId n) => Language.Haskell.Refact.Utils.Utils.Update (SrcLoc.Located (HsExpr.HsExpr n)) t
- Language.Haskell.Refact.Utils.Utils: instance (Data.Data.Data t, Outputable.OutputableBndr n1, Outputable.OutputableBndr n2, PlaceHolder.DataId n1, PlaceHolder.DataId n2) => Language.Haskell.Refact.Utils.Utils.Update (HsBinds.LHsBindLR n1 n2) t
- Language.Haskell.Refact.Utils.Utils: update :: Update t t1 => t -> t -> t1 -> RefactGhc t1
+ Language.Haskell.Refact.API: renamePN :: (Data t) => Name -> Name -> Bool -> t -> RefactGhc t
+ Language.Haskell.Refact.Utils.TypeUtils: renamePN :: (Data t) => Name -> Name -> Bool -> t -> RefactGhc t

Files

ChangeLog view
@@ -1,3 +1,5 @@+2015-10-05 v0.8.1.1+	* Move to new/old home at https://github.com/RefactoringTools/HaRe 2015-10-05 v0.8.1.0 	* Reinstate processing of CPP directives as comments #36 	* Fix problem in renaming in a client module when the old name is
HaRe.cabal view
@@ -1,9 +1,9 @@ Name:                           HaRe-Version:                        0.8.1.0+Version:                        0.8.1.1 Author:                         Chris Brown, Huiqing Li, Simon Thompson, Alan Zimmerman Maintainer:                     Alan Zimmerman Stability:                      Alpha-Bug-Reports:                    http://github.com/alanz/HaRe/issues+Bug-Reports:                    http://github.com/RefactoringTools/HaRe/issues License:                        BSD3 License-File:                   LICENSE Homepage:                       https://github.com/RefactoringTools/HaRe/wiki@@ -339,4 +339,4 @@  source-repository head   type:     git-  location: https://github.com/alanz/HaRe.git+  location: https://github.com/RefactoringTools/HaRe.git
src/Language/Haskell/Refact/API.hs view
@@ -149,7 +149,7 @@     , getModule      -- *** Locations-    ,defineLoc, useLoc, locToExp +    ,defineLoc, useLoc, locToExp     ,locToName, locToRdrName     ,getName @@ -161,17 +161,8 @@     ,rmDecl, rmTypeSig, rmTypeSigs      -- *** Updating-    ,Update(update)-    ,rmQualifier,qualifyToplevelName,renamePN',autoRenameLocalVar--    -- ** Miscellous-    -- *** Parsing, writing and showing-    , showEntities,showPNwithLoc-    -- *** Locations-    -- ,toRelativeLocs, rmLocs-    -- *** Default values-   ,defaultPN,defaultName,defaultExp-+    -- ,Update(update)+    ,rmQualifier,qualifyToplevelName,renamePN,autoRenameLocalVar      -- *** Identifiers, expressions, patterns and declarations     ,ghcToPN,lghcToPN, expToName, expToNameRdr@@ -190,8 +181,6 @@      -- The following functions are not in the the API yet.     , causeNameClashInExports--    -- , removeOffset      , declsSybTransform 
src/Language/Haskell/Refact/Refactoring/MoveDef.hs view
@@ -1632,20 +1632,18 @@   -- |substitute an old expression by new expression-replaceExpWithUpdToks :: (SYB.Data t)-                      => t -> (GHC.Name, GHC.HsExpr GHC.RdrName)-                      -> RefactGhc t+replaceExpWithUpdToks :: GHC.LHsBind GHC.RdrName -> (GHC.Name, GHC.HsExpr GHC.RdrName)+                      -> RefactGhc (GHC.LHsBind GHC.RdrName) replaceExpWithUpdToks  decls subst = do   nm <- getRefactNameMap   let     worker (e@(GHC.L l _)::GHC.LHsExpr GHC.RdrName)       |(expToNameRdr nm e) == Just (fst subst)-          = update e (GHC.L l (snd subst)) e+          = return (GHC.L l (snd subst))     worker x=return x    -- = applyTP (full_buTP (idTP `adhocTP` worker)) decls   everywhereMStaged' SYB.Parser (SYB.mkM worker) decls-  -- | return True if pn is a local function/pattern name isLocalFunOrPatName :: SYB.Data t => GHC.Name -> t -> Bool
src/Language/Haskell/Refact/Refactoring/Renaming.hs view
@@ -174,7 +174,7 @@                                           then do                                                logm $ "renameTopLevelVarName start..:should have qualified"                                                parsed <- getRefactParsed-                                               parsed' <- renamePN' oldPN newNameGhc True parsed+                                               parsed' <- renamePN oldPN newNameGhc True parsed                                                putRefactParsed parsed' mempty                                                logm $ "renameTopLevelVarName done:should have qualified"                                                r' <- getRefactRenamed@@ -182,7 +182,7 @@                                           else do                                                logm $ "renameTopLevelVarName start.."                                                parsed <- getRefactParsed-                                               parsed' <- renamePN' oldPN newNameGhc False parsed+                                               parsed' <- renamePN oldPN newNameGhc False parsed                                                putRefactParsed parsed' mempty                                                logm $ "renameTopLevelVarName done"                                                r' <- getRefactRenamed@@ -257,7 +257,7 @@        logm $ "refactRenameSimple:(old,newStr,new,useQual)=" ++ showGhc (old,newStr,new,useQual)        qualifyTopLevelVar newStr        parsed <- getRefactParsed-       parsed' <- renamePN' old new useQual parsed+       parsed' <- renamePN old new useQual parsed        putRefactParsed parsed' mempty        return () @@ -283,8 +283,8 @@        vs <- hsVisibleNames oldPN' renamed   --Does this check names other than variable names?        logm $ "renameInClientMod.worker:(vs,oldPN',isInScopeUnqualNew)=" ++ showGhc (vs,oldPN',isInScopeUnqualNew)        parsed' <- if elem newName' ((nub vs) \\ [nameToString oldPN'])  || isInScopeUnqualNew-         then renamePN' oldPN' newNameGhc' True  parsed --rename to qualified Name-         else renamePN' oldPN' newNameGhc' False parsed -- do not qualify+         then renamePN oldPN' newNameGhc' True  parsed --rename to qualified Name+         else renamePN oldPN' newNameGhc' False parsed -- do not qualify        putRefactParsed parsed' mempty        return () 
src/Language/Haskell/Refact/Refactoring/SwapArgs.hs view
@@ -79,9 +79,14 @@          inMod _ func = return func           -- 2. All call sites of the function...-         inExp nm expr@((GHC.L _x (GHC.HsApp (GHC.L _y (GHC.HsApp e e1)) e2))::GHC.LHsExpr GHC.RdrName)+         inExp nm ((GHC.L l (GHC.HsApp (GHC.L e0 (GHC.HsApp e e1)) e2))::GHC.LHsExpr GHC.RdrName)             | cond-                   =  update e2 e1 =<< update e1 e2 expr+                   -- =  update e2 e1 =<< update e1 e2 expr+                   = do+                       -- expr1 <- update e1 e2 expr+                       -- expr2 <- update e2 e1 expr1+                       -- return expr2+                       return (GHC.L l (GHC.HsApp (GHC.L e0 (GHC.HsApp e e2)) e1))             where               cond = case (expToNameRdr nm e) of                 Nothing -> False@@ -94,8 +99,10 @@                 = do                      logm $ "doSwap.inType"                      let (t1:t2:ts) = tyFunToList types-                     t1' <- update t1 t2 t1-                     t2' <- update t2 t1 t2+                     -- t1' <- update t1 t2 t1+                     -- t2' <- update t2 t1 t2+                     let t1' = t2+                     let t2' = t1                      return (GHC.L x (GHC.TypeSig [lname] (tyListToFun (t1':t2':ts)) pns))           inType nm (GHC.L _x (GHC.TypeSig (n:ns) _types _)::GHC.LSig GHC.RdrName)@@ -120,8 +127,11 @@          updateMatches [] = return []          updateMatches ((GHC.L x (GHC.Match mfn pats nothing rhs)::GHC.LMatch GHC.RdrName (GHC.LHsExpr GHC.RdrName)):matches)            = case pats of-               (p1:p2:ps) -> do p1' <- update p1 p2 p1-                                p2' <- update p2 p1 p2+               (p1:p2:ps) -> do+                                -- p1' <- update p1 p2 p1+                                -- p2' <- update p2 p1 p2+                                let p1' = p2+                                let p2' = p1                                 matches' <- updateMatches matches                                 return ((GHC.L x (GHC.Match mfn (p1':p2':ps) nothing rhs)):matches')                [p] -> return [GHC.L x (GHC.Match mfn [p] nothing rhs)]
src/Language/Haskell/Refact/Utils/TypeUtils.hs view
@@ -59,9 +59,8 @@     ,getTypeForName      ,defines, definesP,definesTypeSig,definesTypeSigRdr-    -- ,HasModName(hasModName), HasNameSpace(hasNameSpace)     ,sameBind,sameBindRdr-    {- ,usedByRhs -},UsedByRhs(..)+    ,UsedByRhs(..)      -- ** Modules and files     -- ,clientModsAndFiles,serverModsAndFiles,isAnExistingMod@@ -83,23 +82,13 @@     -- ,rmItemsFromExport, rmSubEntsFromExport, Delete(delete)      -- ** Updating-    -- ,Update(update)-    {- ,qualifyPName-},rmQualifier,qualifyToplevelName,{- renamePN, -} renamePN' {- ,replaceNameInPN -},autoRenameLocalVar--    -- * Miscellous-    -- ** Parsing, writing and showing-    {- ,parseSourceFile,writeRefactoredFiles-}, showEntities,showPNwithLoc -- , newProj, addFile, chase-    -- ** Locations-    -- ,toRelativeLocs, rmLocs-    -- ** Default values-   ,defaultPN {- ,defaultPNT -},defaultName {-,defaultModName-},defaultExp -- ,defaultPat, defaultExpUnTyped-+    , rmQualifier, qualifyToplevelName, renamePN, autoRenameLocalVar      -- ** Identifiers, expressions, patterns and declarations     ,ghcToPN,lghcToPN, expToName, expToNameRdr     ,nameToString     ,patToNameRdr-    {- ,expToPNT, expToPN, nameToExp,pNtoExp -},patToPNT {- , patToPN --, nameToPat -},pNtoPat+    , patToPNT, pNtoPat      -- ** Others     , divideDecls@@ -108,26 +97,18 @@     -- The following functions are not in the the API yet.     , causeNameClashInExports {- , inRegion , unmodified -} -    -- , removeOffset-     , declsSybTransform-    -- , hasDeclsSybTransform      -- * Typed AST traversals (added by CMB)     -- * Miscellous     -- ,removeFromInts, getDataName, checkTypes, getPNs, getPN, getPNPats, mapASTOverTAST      -- * Debug stuff-    -- , getDeclAndToks, getSigAndToks-    -- , getToksForDecl, removeToksOffset -- ++AZ++ remove this after debuggging     , getParsedForRenamedLPat     , getParsedForRenamedName     , getParsedForRenamedLocated-    -- , allPNT-    --  , allPNTLens     , rdrNameFromName     , stripLeadingSpaces-    -- , lookupNameGhc  ) where  import Control.Monad.State@@ -197,6 +178,7 @@        _                         -> Nothing  +-- ---------------------------------------------------------------------  -- | Return True if the identifier is inscope and can be used without -- a qualifier.@@ -271,33 +253,20 @@   return newNames  -- ------------------------------------------------------------------------ | Show a PName in a format like: 'pn'(at row:r, col: c).-showPNwithLoc:: GHC.Located GHC.Name -> String-showPNwithLoc pn@(GHC.L l _n)-  = let (r,c) = getGhcLoc l-    -- in  " '"++pNtoName pn++"'" ++"(at row:"++show r ++ ",col:" ++ show c ++")"-    in  " '"++showGhc pn++"'" ++"(at row:"++show r ++ ",col:" ++ show c ++")" --- -----------------------------------------------------------------------defaultPN :: PName-defaultPN = PN (mkRdrName "nothing")-+-- TODO: get rid of this defaultName :: GHC.Name defaultName = n   where     un = GHC.mkUnique 'H' 0 -- H for HaRe :)     n = GHC.localiseName $ GHC.mkSystemName un (GHC.mkVarOcc "nothing") --- | Default expression.-defaultExp::HsExpP--- defaultExp=Exp (HsId (HsVar defaultPNT))-defaultExp=GHC.HsVar $ mkRdrName "nothing"+-- --------------------------------------------------------------------- +-- |Make a simple unqualified 'GHC.RdrName' mkRdrName :: String -> GHC.RdrName mkRdrName s = GHC.mkVarUnqual (GHC.mkFastString s) --- ---------------------------------------------------------------------  -- | Make a new GHC.Name, using the Unique Int sequence stored in the -- RefactState.@@ -403,13 +372,10 @@       _           -> False      modIsUnQualifedImported _mod' modName'-     =let -- imps =hsModImports mod-       -- imp@(GHC.L _ (GHC.ImportDecl (GHC.L _ modName) qualify _source _safe isQualified _isImplicit as h))+     =let       in isJust $ find (\(GHC.L _ (GHC.ImportDecl _ (GHC.L _ modName1) _qualify _source _safe isQualified _isImplicit _as _h))                                 -> modName1 == modName' && (not isQualified)) imps-      -- in isJust $ find (\(HsImportDecl _ (SN modName1 _) qualify  _ h) -> modName == modName1 && (not qualify)) imps - -- Original seems to be --   1. pick up any module names in the export list with same unQual      --   part as the new name@@ -513,7 +479,6 @@       checkName ((GHC.L l pn)::GHC.Located GHC.RdrName)         | ((GHC.rdrNameOcc pn) == (GHC.nameOccName name)) &&-          -- isUsedInRhs pname parsed &&           isUsedInRhs (GHC.L l name) parsed &&           GHC.isUnqual pn     = Just True      checkName _ = Nothing@@ -580,8 +545,6 @@ -- |Return True if a PName is a local PName. isLocalPN::GHC.Name -> Bool isLocalPN = GHC.isInternalName--- isLocalPN (PN i (UniqueNames.S _)) = True--- isLocalPN _ = False  -- |Return True if the name has a @GHC.SrcSpan@, i.e. is declared in -- source we care about@@ -596,7 +559,6 @@ isFunOrPatName pn    =isJust . SYB.somethingStaged SYB.Parser Nothing (Nothing `SYB.mkQ` worker)      where-        -- worker (decl::HsDeclP)         worker (decl::GHC.LHsBind GHC.Name)            | defines pn decl = Just True         worker _ = Nothing@@ -982,19 +944,7 @@                         }  -- ----------------------------------------------------------------------{---- | Remove ImportDecl from the imports list, commonly returned from a RenamedSource type, so it can--- be further processed.---rmPreludeImports :: [GHC.Located (GHC.ImportDecl GHC.Name)] -> [GHC.Located (GHC.ImportDecl GHC.Name)]-rmPreludeImports ::-  [GHC.Located (GHC.ImportDecl GHC.Name)]-  -> [GHC.Located (GHC.ImportDecl GHC.Name)]-rmPreludeImports = filter isPrelude where-            isPrelude = (/="Prelude") . GHC.moduleNameString . GHC.unLoc . GHC.ideclName . GHC.unLoc--} --- ---------------------------------------------------------------------- -- | Adding a declaration to the declaration list of the given syntax -- phrase. If the second argument is Nothing, then the declaration -- will be added to the beginning of the declaration list, but after@@ -1241,7 +1191,6 @@  addParamsToDecls decls pn paramPNames = do   -- logm $ "addParamsToDecls (pn,paramPNames,modifyToks)=" ++ (showGhc (pn,paramPNames,modifyToks))-  -- logm $ "addParamsToDecls: decls=" ++ (SYB.showData SYB.Renamer 0 decls)   nameMap <- getRefactNameMap   if (paramPNames /= [])         then mapM (addParamToDecl nameMap) decls@@ -1466,8 +1415,8 @@        declsToDup = definingDeclsRdrNames nm [n] decls True False        funBinding = filter isFunOrPatBindP declsToDup     --get the fun binding.        typeSig    = map wrapSig $ definingSigsRdrNames nm [n] decls-     funBinding'' <- renamePN' n newFunName False funBinding-     typeSig'' <- renamePN' n newFunName False typeSig+     funBinding'' <- renamePN n newFunName False funBinding+     typeSig'' <- renamePN n newFunName False typeSig      logm $ "duplicateDecl:funBinding''=" ++ showGhc funBinding''       funBinding3 <- mapM (\f@(GHC.L _ fb) -> do@@ -1558,12 +1507,9 @@                      return expr                     _ -> do                      -- logm $ "rmDecl.inLet:length decls /= 1"-                     -- let decls2' = gtail "inLet" decls2                      decls' <- doRmDecl decls1 decls2                      letExpr' <- liftT $ replaceDecls letExpr decls'                      return letExpr'-                     -- localDecls' <- liftT $ replaceDecls localDecls decls'-                     -- return $ (GHC.L ss (GHC.HsLet localDecls' expr))                 else do                   -- liftT $ replaceDecls localDecls decls                   return letExpr@@ -1592,7 +1538,6 @@                  logDataWithAnns "doRmDeclList:(parent')" (parent')                  return parent'                else do-                 -- liftT $ replaceDecls parent decls                  return parent      -- ---------------------------------@@ -1782,9 +1727,6 @@      rename nm (ln@(GHC.L l pn)::GHC.Located GHC.RdrName)        | elem (rdrName2NamePure nm ln) pns        = do-               -- let (rs,_) = break (=='.') $ reverse $ showGhc pn -- ++TODO: replace this with the appropriate formulation-               --     s = reverse rs-               -- return (GHC.L l (GHC.mkInternalName (GHC.nameUnique pn) (GHC.mkVarOcc s) l))               case pn of                 GHC.Qual _ n -> return (GHC.L l (GHC.Unqual n))                 _            -> return ln@@ -1795,9 +1737,8 @@ -- | Replace all occurences of a top level GHC.Name with a qualified version. qualifyToplevelName :: GHC.Name -> RefactGhc () qualifyToplevelName n = do-    -- renamed <- getRefactRenamed     parsed <- getRefactParsed-    parsed' <- renamePN' n n True parsed+    parsed' <- renamePN n n True parsed     putRefactParsed parsed' emptyAnns     return () @@ -1812,14 +1753,14 @@ -- TODO: the syntax phrase is required to be GHC.Located, not sure how -- to specify this without breaking the everywhereMStaged call -renamePN'::(SYB.Data t)+renamePN::(SYB.Data t)    =>GHC.Name             -- ^ The identifier to be renamed.    ->GHC.Name             -- ^ The new name, including possible qualifier    ->Bool                 -- ^ True means use the qualified form for                           --   the new name.    ->t                    -- ^ The syntax phrase    ->RefactGhc t-renamePN' oldPN newName useQual t = do+renamePN oldPN newName useQual t = do   -- logm $ "renamePN: (oldPN,newName)=" ++ (showGhc (oldPN,newName))   -- logm $ "renamePN: t=" ++ (SYB.showData SYB.Parser 0 t)   nameMap <- getRefactNameMap@@ -2057,7 +1998,7 @@                        ds <- hsVisibleNamesRdr pn tt                        let newNameStr = mkNewName (nameToString pn) (nub (f `union` d `union` ds)) 1                        newName <- mkNewGhcName Nothing newNameStr-                       renamePN' pn newName False tt+                       renamePN pn newName False tt  -- --------------------------------------------------------------------- @@ -2180,10 +2121,6 @@       inName = nameSybQuery checker        uns = map GHC.nameUnique pns--      -- worker (ln :: GHC.Located GHC.RdrName)-      --    | elem (GHC.nameUnique (rdrName2NamePure nm ln)) uns = Just True-      -- worker _ = Nothing  -- --------------------------------------------------------------------- 
src/Language/Haskell/Refact/Utils/Utils.hs view
@@ -20,7 +20,7 @@        , applyRefac        , refactDone -       , Update(..)+       -- , Update(..)        , fileNameFromModSummary        , getModuleName        , clientModsAndFiles@@ -288,7 +288,7 @@ -} -- --------------------------------------------------------------------- -+{- -- ++AZ++ I think the intended function of this class has been superseded by -- ghc-exactprint HasDecls. class (SYB.Data t, SYB.Data t1) => Update t t1 where@@ -301,11 +301,11 @@          -> RefactGhc t1  -- ^ The result.  instance (SYB.Data t, GHC.OutputableBndr n, GHC.DataId n)-  => Update (GHC.Located (GHC.HsExpr n)) t where+  => Update (GHC.LHsExpr n) t where     update oldExp newExp t            = SYB.everywhereMStaged SYB.Parser (SYB.mkM inExp) t        where-        inExp (e::GHC.Located (GHC.HsExpr n))+        inExp (e::GHC.LHsExpr n)           | sameOccurrence e oldExp                = return newExp           | otherwise = return e@@ -339,7 +339,7 @@               | sameOccurrence t' oldBind                   = return newBind               | otherwise = return t'-+-}  -- --------------------------------------------------------------------- 
src/Language/Haskell/Refact/Utils/Variables.hs view
@@ -17,7 +17,6 @@     isFieldName   , isClassName   , isInstanceName-  -- , hsPNs   , isDeclaredIn,isDeclaredInRdr   , FreeNames(..),DeclaredNames(..)   , hsFreeAndDeclaredPNsOld@@ -39,7 +38,7 @@   -- ** Identifiers, expressions, patterns and declarations   , FindEntity(..)   , sameOccurrence-  {- ,definingDecls -}, definedPNs, definedPNsRdr,definedNamesRdr+  , definedPNs, definedPNsRdr,definedNamesRdr   , definingDeclsRdrNames,definingDeclsRdrNames',definingSigsRdrNames   , definingDeclsNames, definingDeclsNames', definingSigsNames   , definingTyClDeclsNames@@ -48,7 +47,6 @@   , definesTypeSig,definesTypeSigRdr,definesSigDRdr   , definesP   , allNames-  -- ,simplifyDecl    , hsPNs, hsNamess, hsNamessRdr   , locToName, locToRdrName@@ -123,16 +121,7 @@       checkRdr n         | sameOccurrence n ln = Just True         | otherwise = Nothing-{--  findEntity n t = fromMaybe False res-   where-    res = SYB.something (Nothing `SYB.mkQ` worker) t -    worker (name :: GHC.Located GHC.RdrName)-      | sameOccurrence n name = Just True-    worker _ = Nothing--}- -- --------------------------------------------------------------------- {- -- This is not precise enough, RdrNames are ambiguous@@ -291,7 +280,6 @@ hsFreeAndDeclaredRdr' nm t = do       (FN f,DN d) <- hsFreeAndDeclared'       let (f',d') = (nub f, nub d)-      -- return (f' \\ d',d')       return (FN f',DN d')           -- hsFreeAndDeclared'=applyTU (stop_tdTU (failTU  `adhocTU` exp @@ -464,9 +452,6 @@                                                       `adhocTU` rhs                                                        )) t -          -- TODO: ++AZ++ Note:After renaming, HsBindLR has field bind_fvs-          --       containing locally bound free vars-           -- expr --           expr (GHC.HsVar n) = return ([n],[]) @@ -575,7 +560,6 @@   return ((nub.map showGhc) f1, (nub.map showGhc) d1)  --- hsFreeAndDeclaredPNs :: (SYB.Data t,GHC.Outputable t) => t -> RefactGhc ([GHC.Name],[GHC.Name]) hsFreeAndDeclaredPNs :: (SYB.Data t) => t -> RefactGhc ([GHC.Name],[GHC.Name]) hsFreeAndDeclaredPNs t = do   -- logm $ "hsFreeAndDeclaredPNs:t=" ++ (showGhc t)@@ -653,11 +637,6 @@      -- ----------------------- -    -- lhsdecls :: [GHC.LHsDecl GHC.Name] -> RefactGhc (FreeNames,DeclaredNames)-    -- lhsdecls ds = recurseList ds--    -- ------------------------     lhsbinds :: [GHC.LHsBind GHC.Name] -> RefactGhc (FreeNames,DeclaredNames)     lhsbinds bs = do       (FN f,DN d) <- recurseList bs@@ -674,7 +653,6 @@     hsbind b@(GHC.FunBind _n _ (GHC.MG matches _ _ _) _ _ _) = do         -- logm $ "hsFreeAndDeclaredGhc.hsbind:b=" ++ (showGhc b)         let d = GHC.collectHsBindBinders b-        -- let pats = concatMap (\(GHC.L _ (GHC.Match pat _ _)) -> pat) matches         (fp,_dp) <- hsFreeAndDeclaredGhc matches         -- logm $ "hsFreeAndDeclaredGhc.hsbind:(fp,_dp)=" ++ (show (fp,_dp))         -- logm $ "hsFreeAndDeclaredGhc.hsbind:(d)=" ++ (showGhc (d))@@ -733,8 +711,6 @@       let         d = GHC.collectPatBinders lp -      -- logm $ "hsFreeAndDeclaredGhc.lpat p=" ++ (SYB.showData SYB.Renamer 0 p)-       (FN f,DN _dn) <- pat p       -- logm $ "hsFreeAndDeclaredGhc.lpat:(fn,dn)=" ++ (showGhc (fn,dn))       return (FN f,DN d)@@ -779,7 +755,6 @@      pat p = error $ "hsFreeAndDeclaredGhc.pat:unimplemented:" ++ (showGhc p) -    --  HsConDetails (LPat id) (HsRecFields id (LPat id))     details :: GHC.HsConPatDetails GHC.Name -> RefactGhc (FreeNames,DeclaredNames)     details (GHC.PrefixCon  args) = do       -- logm $ "hsFreeAndDeclaredGhc.details:args=" ++ (showGhc args)@@ -2255,7 +2230,6 @@      parsed p         = return $ hsFreeAndDeclaredRdr nm p -     -- Match [LPat id] (Maybe (LHsType id)) (GRHSs id)      match :: GHC.Match GHC.RdrName (GHC.LHsExpr GHC.RdrName) -> RefactGhc (FreeNames,DeclaredNames)      match (GHC.Match _fn pats _type rhs) = do        let (FN pf, DN pd) = hsFreeAndDeclaredRdr nm pats@@ -2343,7 +2317,6 @@                                             `adhocTU` match                                             `adhocTU` expr                                             `adhocTU` stmts )) t1-          -- let (f',d') = fromMaybe ([],[]) r1           let (f',d') = r1           return (nub f', nub d') @@ -2351,7 +2324,6 @@      renamed ((grp,_,_,_)::GHC.RenamedSource)         = hsFreeAndDeclaredPNs $ GHC.hs_valds grp -     -- Match [LPat id] (Maybe (LHsType id)) (GRHSs id)      match :: GHC.Match GHC.Name (GHC.LHsExpr GHC.Name) -> RefactGhc ([GHC.Name],[GHC.Name])      match ((GHC.Match _fn pats _type rhs):: GHC.Match GHC.Name (GHC.LHsExpr GHC.Name)) = do        (pf, pd) <- hsFreeAndDeclaredPNs pats@@ -2403,7 +2375,6 @@          (df,dd) <- hsFreeAndDeclaredPNs matches          return (nub (df `union` (ef \\ dd)), nub dd) -     -- expr _ = return ([],[])      expr _ = mzero       stmts ((GHC.BindStmt pat e1 e2 e3) :: GHC.Stmt GHC.Name (GHC.LHsExpr GHC.Name)) =@@ -2417,7 +2388,6 @@      stmts ((GHC.LetStmt binds) :: GHC.Stmt GHC.Name (GHC.LHsExpr GHC.Name)) =        hsFreeAndDeclaredPNs binds -     -- stmts _ = return ([],[])      stmts _ = mzero  @@ -2516,43 +2486,4 @@               (col >= (GHC.srcSpanStartCol ss)) &&               (col <= (GHC.srcSpanEndCol   ss)) --- ----------------------------------------------------------------------{--nameSybQuery :: (SYB.Typeable a, SYB.Typeable t)-             => (GHC.Located a -> Maybe r) -> t -> Maybe r-nameSybQuery checker = q-  where-    q = Nothing `SYB.mkQ` worker-                `SYB.extQ` workerBind-                `SYB.extQ` workerExpr-                `SYB.extQ` workerLIE-                `SYB.extQ` workerHsTyVarBndr-                `SYB.extQ` workerLHsType--    worker (pnt :: (GHC.Located a))-      = checker pnt--    -- workerBind (GHC.L l (GHC.VarPat name) :: (GHC.Located (GHC.Pat a)))-    workerBind (GHC.L l (GHC.VarPat name))-      = checker (GHC.L l name)-    workerBind _ = Nothing--    -- workerExpr ((GHC.L l (GHC.HsVar name)) :: (GHC.Located (GHC.HsExpr a)))-    workerExpr ((GHC.L l (GHC.HsVar name)))-      = checker (GHC.L l name)-    workerExpr _ = Nothing--    workerLIE ((GHC.L _l (GHC.IEVar (GHC.L ln name))) :: (GHC.LIE a))-    -- workerLIE ((GHC.L _l (GHC.IEVar (GHC.L ln name))))-      = checker (GHC.L ln name)-    workerLIE _ = Nothing--    -- workerHsTyVarBndr ((GHC.L l (GHC.UserTyVar name))::  (GHC.LHsTyVarBndr a))-    workerHsTyVarBndr ((GHC.L l (GHC.UserTyVar name)))-      = checker (GHC.L l name)-    workerHsTyVarBndr _ = Nothing--    workerLHsType ((GHC.L l (GHC.HsTyVar name)))-      = checker (GHC.L l name)-    workerLHsType _ = Nothing--}+-- EOF
test/TypeUtilsSpec.hs view
@@ -2460,7 +2460,7 @@          renamed <- getRefactRenamed          let Just (GHC.L _l n') = locToName (3, 1) renamed          newName <- mkNewGhcName Nothing "bar2"-         new <- renamePN' n' newName False parsed+         new <- renamePN n' newName False parsed          putRefactParsed new emptyAnns          return (new,newName,n')       let@@ -2483,7 +2483,7 @@          let decl = head $ drop 0 declsr          let Just (GHC.L _l n') = locToName (11, 21) renamed          newName <- mkNewGhcName Nothing "p_1"-         new <- renamePN' n' newName False decl+         new <- renamePN n' newName False decl          parsed' <- liftT $ replaceDecls parsed (new:tail declsr)          putRefactParsed parsed' emptyAnns          return (new,newName,decl,n')@@ -2509,7 +2509,7 @@          parsed <- getRefactParsed          decls <- liftT $ hsDecls parsed          newName <- mkNewGhcName Nothing "bar2"-         new <- renamePN' n newName False (head $ drop 3 decls)+         new <- renamePN n newName False (head $ drop 3 decls)          parsed' <- liftT $ replaceDecls parsed (take 3 decls ++ [new] ++ drop 4 decls)          putRefactParsed parsed' emptyAnns          return (new,newName)@@ -2537,7 +2537,7 @@          decls <- liftT $ hsDecls parsed          let decl = head $ drop 3 decls          newName <- mkNewGhcName Nothing "bar2"-         new <- renamePN' n newName False decl+         new <- renamePN n newName False decl           parsed' <- liftT $ replaceDecls parsed (take 3 decls ++ [new] ++ drop 4 decls)          putRefactParsed parsed' emptyAnns@@ -2562,7 +2562,7 @@       let         comp = do          newName <- mkNewGhcName Nothing "pointx1"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2588,7 +2588,7 @@         comp = do          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)          newName <- mkNewGhcName Nothing "NewPoint"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2612,7 +2612,7 @@       let         comp = do          newName <- mkNewGhcName Nothing "newPoint"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2637,7 +2637,7 @@         comp = do          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)          newName <- mkNewGhcName (Just modu) "newPoint"-         new <- renamePN' n newName True parsed+         new <- renamePN n newName True parsed           putRefactParsed new emptyAnns @@ -2663,7 +2663,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)           newName <- mkNewGhcName Nothing "ls"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2687,7 +2687,7 @@       let         comp = do          newName <- mkNewGhcName (Just modu) "mySum"-         new <- renamePN' n newName True parsed+         new <- renamePN n newName True parsed           putRefactParsed new emptyAnns @@ -2715,7 +2715,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)          newName <- mkNewGhcName (Just modu) "myNewFringe" -         new <- renamePN' n newName True parsed+         new <- renamePN n newName True parsed          putRefactParsed new emptyAnns           return (new,newName)@@ -2740,7 +2740,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)           newName <- mkNewGhcName Nothing "ls"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2767,7 +2767,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)           newName <- mkNewGhcName Nothing "listlonger"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2793,7 +2793,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)           newName <- mkNewGhcName Nothing "io"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2819,7 +2819,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)           newName <- mkNewGhcName Nothing "ioFunLong"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2844,7 +2844,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)           newName <- mkNewGhcName Nothing "q"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2870,7 +2870,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)           newName <- mkNewGhcName Nothing "square"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2895,7 +2895,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)           newName <- mkNewGhcName Nothing "x"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2921,7 +2921,7 @@           newName <- mkNewGhcName Nothing "xxxlong"          -- new <- renamePN n newName False renamed-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2948,7 +2948,7 @@          logm $ "renamed:" ++ (SYB.showData SYB.Renamer 0 renamed)           newName <- mkNewGhcName Nothing "xxxlong"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns @@ -2975,7 +2975,7 @@          logm $ "parsed:" ++ (SYB.showData SYB.Parser 0 parsed)           newName <- mkNewGhcName Nothing "NewType"-         new <- renamePN' n newName False parsed+         new <- renamePN n newName False parsed           putRefactParsed new emptyAnns          logm $ "parsed:after" ++ (SYB.showData SYB.Parser 0 new)