projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
White space only
[ghc-hetmet.git]
/
compiler
/
basicTypes
/
OccName.lhs
diff --git
a/compiler/basicTypes/OccName.lhs
b/compiler/basicTypes/OccName.lhs
index
172c709
..
5489ea7
100644
(file)
--- a/
compiler/basicTypes/OccName.lhs
+++ b/
compiler/basicTypes/OccName.lhs
@@
-42,7
+42,7
@@
module OccName (
mkTyVarOcc, mkTyVarOccFS,
mkTcOcc, mkTcOccFS,
mkClsOcc, mkClsOccFS,
mkTyVarOcc, mkTyVarOccFS,
mkTcOcc, mkTcOccFS,
mkClsOcc, mkClsOccFS,
- mkDFunOcc,
+ mkDFunOcc,
mkTupleOcc,
setOccNameSpace,
mkTupleOcc,
setOccNameSpace,
@@
-92,6
+92,8
@@
module OccName (
startsVarSym, startsVarId, startsConSym, startsConId
) where
startsVarSym, startsVarId, startsConSym, startsConId
) where
+#include "Typeable.h"
+
import Util
import Unique
import BasicTypes
import Util
import Unique
import BasicTypes
@@
-102,16
+104,7
@@
import Outputable
import Binary
import StaticFlags( opt_SuppressUniques )
import Data.Char
import Binary
import StaticFlags( opt_SuppressUniques )
import Data.Char
-\end{code}
-
-\begin{code}
--- Unicode TODO: put isSymbol in libcompat
-#if !defined(__GLASGOW_HASKELL__) || __GLASGOW_HASKELL__ > 604
-#else
-isSymbol :: a -> Bool
-isSymbol = const False
-#endif
-
+import Data.Data
\end{code}
%************************************************************************
\end{code}
%************************************************************************
@@
-216,6
+209,7
@@
data OccName = OccName
{ occNameSpace :: !NameSpace
, occNameFS :: !FastString
}
{ occNameSpace :: !NameSpace
, occNameFS :: !FastString
}
+ deriving Typeable
\end{code}
\end{code}
@@
-227,6
+221,12
@@
instance Ord OccName where
-- Compares lexicographically, *not* by Unique of the string
compare (OccName sp1 s1) (OccName sp2 s2)
= (s1 `compare` s2) `thenCmp` (sp1 `compare` sp2)
-- Compares lexicographically, *not* by Unique of the string
compare (OccName sp1 s1) (OccName sp2 s2)
= (s1 `compare` s2) `thenCmp` (sp1 `compare` sp2)
+
+instance Data OccName where
+ -- don't traverse?
+ toConstr _ = abstractConstr "OccName"
+ gunfold _ _ = error "gunfold"
+ dataTypeOf _ = mkNoRepType "OccName"
\end{code}
\end{code}
@@
-719,7
+719,9
@@
tidyOccName in_scope occ@(OccName occ_sp fs)
Just n -> -- Already used: make a new guess,
-- change the guess base, and try again
tidyOccName (extendOccEnv in_scope occ (n+1))
Just n -> -- Already used: make a new guess,
-- change the guess base, and try again
tidyOccName (extendOccEnv in_scope occ (n+1))
- (mkOccName occ_sp (unpackFS fs ++ show n))
+ (mkOccName occ_sp (base_occ ++ show n))
+ where
+ base_occ = reverse (dropWhile isDigit (reverse (unpackFS fs)))
\end{code}
%************************************************************************
\end{code}
%************************************************************************