From 34eac44d4597cddb53b7b7f09479464f70df6324 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Sat, 18 Aug 2007 15:48:22 +0000 Subject: [PATCH] Rain: implemented the pass to give declarations unique names --- RainPasses.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/RainPasses.hs b/RainPasses.hs index 1607430..7ce06c1 100644 --- a/RainPasses.hs +++ b/RainPasses.hs @@ -23,8 +23,11 @@ rainPasses = runPasses passes uniquifyVars :: Data t => t -> PassM t uniquifyVars = everywhereM (mkM uniquifyVars') where - uniquifyVars' :: A.Structured -> PassM A.Structured - uniquifyVars' = return + uniquifyVars' :: A.Specification -> PassM A.Specification + uniquifyVars' (A.Specification m n decl@(A.Declaration _ _)) + = do n' <- makeNonce $ A.nameName n + return (A.Specification m n {A.nameName = n'} decl) + uniquifyVars' s = return s transformEach :: Data t => t -> PassM t transformEach = everywhereM (mkM transformEach')