
#11019: ApiAnnotations: Make all RdrName occurences Located -------------------------------------+------------------------------------- Reporter: alanz | Owner: alanz Type: bug | Status: new Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.10.2 Resolution: | Keywords: | ApiAnnotations Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by alanz): Example code from HaRe to enable changing a name {{{#!hs nameSybTransform :: (Monad m,SYB.Typeable t) => (GHC.Located GHC.RdrName -> m (GHC.Located GHC.RdrName)) -> t -> m t nameSybTransform changer = q where q = SYB.mkM worker `SYB.extM` workerBind `SYB.extM` workerExpr `SYB.extM` workerLIE `SYB.extM` workerHsTyVarBndr `SYB.extM` workerLHsType worker (pnt :: (GHC.Located GHC.RdrName)) = changer pnt workerBind (GHC.L l (GHC.VarPat name)) = do (GHC.L _ n) <- changer (GHC.L l name) return (GHC.L l (GHC.VarPat n)) workerBind x = return x workerExpr ((GHC.L l (GHC.HsVar name))) = do (GHC.L _ n) <- changer (GHC.L l name) return (GHC.L l (GHC.HsVar n)) workerExpr x = return x workerLIE ((GHC.L l (GHC.IEVar (GHC.L ln name))) :: (GHC.LIE GHC.RdrName)) = do (GHC.L _ n) <- changer (GHC.L ln name) return (GHC.L l (GHC.IEVar (GHC.L ln n))) workerLIE x = return x workerHsTyVarBndr (GHC.L l (GHC.UserTyVar name)) = do (GHC.L _ n) <- changer (GHC.L l name) return (GHC.L l (GHC.UserTyVar n)) workerHsTyVarBndr x = return x workerLHsType (GHC.L l (GHC.HsTyVar name)) = do (GHC.L _ n) <- changer (GHC.L l name) return (GHC.L l (GHC.HsTyVar n)) workerLHsType x = return x }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11019#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler