From 88380cdc6fbb9a2718820ef854d33637519e1e2e Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Sat, 18 Aug 2007 17:05:08 +0000 Subject: [PATCH] Rain: implemented the pass to record the type of names in CompState --- RainPasses.hs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/RainPasses.hs b/RainPasses.hs index 40e91c7..ffbe106 100644 --- a/RainPasses.hs +++ b/RainPasses.hs @@ -34,7 +34,15 @@ uniquifyAndResolveVars = everywhereM (mkM uniquifyAndResolveVars') replaceNameName find replace n = if (A.nameName n) == find then n {A.nameName = replace} else n recordNameTypes :: Data t => t -> PassM t -recordNameTypes = return +recordNameTypes = everywhereM (mkM recordNameTypes') + where + recordNameTypes' :: A.Specification -> PassM A.Specification + recordNameTypes' input@(A.Specification m n decl@(A.Declaration _ declType)) + = defineName n A.NameDef {A.ndMeta = m, A.ndName = A.nameName n, A.ndOrigName = A.nameName n, + A.ndNameType = A.VariableName, A.ndType = decl, + A.ndAbbrevMode = A.Original, A.ndPlacement = A.Unplaced} + >> return input + recordNameTypes' s = return s transformEach :: Data t => t -> PassM t