Remove unused tidyOccNames and update Note
authorJoachim Breitner <mail@joachim-breitner.de>
Sun, 30 Apr 2017 07:29:49 +0000 (09:29 +0200)
committerJoachim Breitner <mail@joachim-breitner.de>
Sun, 30 Apr 2017 08:01:31 +0000 (10:01 +0200)
addressing rwbarton’s concerns in
https://phabricator.haskell.org/rGHC18ac80ff729e#66197

Differential Revision: https://phabricator.haskell.org/D3511

compiler/basicTypes/OccName.hs

index cde7cc5..f9c875e 100644 (file)
@@ -99,8 +99,7 @@ module OccName (
 
         -- * Tidying up
         TidyOccEnv, emptyTidyOccEnv, initTidyOccEnv,
-        tidyOccName,
-        tidyOccNames, avoidClashesOccEnv,
+        tidyOccName, avoidClashesOccEnv,
 
         -- FsEnv
         FastStringEnv, emptyFsEnv, lookupFsEnv, extendFsEnv, mkFsEnv
@@ -117,7 +116,6 @@ import Outputable
 import Lexeme
 import Binary
 import Control.DeepSeq
-import Data.List (mapAccumL)
 import Data.Char
 import Data.Data
 
@@ -854,15 +852,13 @@ would like to see is
 
     (id,id,id) :: (a3 -> a3, a2 -> a2, a1 -> a1)
 
-This is achieved in tidyOccNames. It still uses tidyOccName to rename each name
-on its own, but it prepares the TidyEnv (using avoidClashesOccEnv), by “blocking” every
-name that occurs twice in the map. This way, none of the "a"s will get the
-priviledge of keeping this name, and all of them will get a suitable numbery by
-tidyOccName.
+To achieve this, the function avoidClashesOccEnv can be used to prepare the
+TidyEnv, by “blocking” every name that occurs twice in the map. This way, none
+of the "a"s will get the priviledge of keeping this name, and all of them will
+get a suitable number by tidyOccName.
 
-It may be inappropriate to use tidyOccNames if the caller needs access to the
-intermediate environments (e.g. to tidy the tyVarKind of a type variable). In that
-case, avoidClashesOccEnv should be used directly, and tidyOccName afterwards.
+This prepared TidyEnv can then be used with tidyOccName. See tidyTyCoVarBndrs
+for an example where this is used.
 
 This is #12382.
 
@@ -880,11 +876,6 @@ initTidyOccEnv = foldl add emptyUFM
     add env (OccName _ fs) = addToUFM env fs 1
 
 -- see Note [Tidying multiple names at once]
-tidyOccNames :: TidyOccEnv -> [OccName] -> (TidyOccEnv, [OccName])
-tidyOccNames env occs = mapAccumL tidyOccName env' occs
-  where
-    env' = avoidClashesOccEnv env occs
-
 avoidClashesOccEnv :: TidyOccEnv -> [OccName] -> TidyOccEnv
 avoidClashesOccEnv env occs = go env emptyUFM occs
   where