projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 1999-07-15 14:08:03 by keithw]
[ghc-hetmet.git]
/
ghc
/
compiler
/
basicTypes
/
OccName.lhs
diff --git
a/ghc/compiler/basicTypes/OccName.lhs
b/ghc/compiler/basicTypes/OccName.lhs
index
0735434
..
d2c28f1
100644
(file)
--- a/
ghc/compiler/basicTypes/OccName.lhs
+++ b/
ghc/compiler/basicTypes/OccName.lhs
@@
-8,7
+8,7
@@
module OccName (
-- The NameSpace type; abstact
NameSpace, tcName, clsName, tcClsName, dataName, varName, tvName,
module OccName (
-- The NameSpace type; abstact
NameSpace, tcName, clsName, tcClsName, dataName, varName, tvName,
- nameSpaceString,
+ uvName, nameSpaceString,
-- The OccName type
OccName, -- Abstract, instance of Outputable
-- The OccName type
OccName, -- Abstract, instance of Outputable
@@
-19,7
+19,7
@@
module OccName (
mkDictOcc, mkWorkerOcc, mkMethodOcc, mkDefaultMethodOcc,
mkDerivedTyConOcc, mkClassTyConOcc, mkClassDataConOcc, mkSpecOcc,
mkDictOcc, mkWorkerOcc, mkMethodOcc, mkDefaultMethodOcc,
mkDerivedTyConOcc, mkClassTyConOcc, mkClassDataConOcc, mkSpecOcc,
- isTvOcc, isDataOcc, isDataSymOcc, isSymOcc,
+ isTvOcc, isUvOcc, isDataOcc, isDataSymOcc, isSymOcc,
occNameFS, occNameString, occNameUserString, occNameSpace, occNameFlavour,
setOccNameSpace,
occNameFS, occNameString, occNameUserString, occNameSpace, occNameFlavour,
setOccNameSpace,
@@
-84,6
+84,7
@@
pprEncodedFS fs
data NameSpace = VarName -- Variables
| DataName -- Data constructors
| TvName -- Type variables
data NameSpace = VarName -- Variables
| DataName -- Data constructors
| TvName -- Type variables
+ | UvName -- Usage variables
| TcClsName -- Type constructors and classes; Haskell has them
-- in the same name space for now.
deriving( Eq, Ord )
| TcClsName -- Type constructors and classes; Haskell has them
-- in the same name space for now.
deriving( Eq, Ord )
@@
-96,6
+97,7
@@
tcClsName = TcClsName -- Not sure which!
dataName = DataName
tvName = TvName
dataName = DataName
tvName = TvName
+uvName = UvName
varName = VarName
varName = VarName
@@
-103,6
+105,7
@@
nameSpaceString :: NameSpace -> String
nameSpaceString DataName = "Data constructor"
nameSpaceString VarName = "Variable"
nameSpaceString TvName = "Type variable"
nameSpaceString DataName = "Data constructor"
nameSpaceString VarName = "Variable"
nameSpaceString TvName = "Type variable"
+nameSpaceString UvName = "Usage variable"
nameSpaceString TcClsName = "Type constructor or class"
\end{code}
nameSpaceString TcClsName = "Type constructor or class"
\end{code}
@@
-211,11
+214,14
@@
occNameFlavour (OccName sp _) = nameSpaceString sp
\end{code}
\begin{code}
\end{code}
\begin{code}
-isTvOcc, isDataSymOcc, isSymOcc :: OccName -> Bool
+isTvOcc, isDataSymOcc, isSymOcc, isUvOcc :: OccName -> Bool
isTvOcc (OccName TvName _) = True
isTvOcc other = False
isTvOcc (OccName TvName _) = True
isTvOcc other = False
+isUvOcc (OccName UvName _) = True
+isUvOcc other = False
+
-- Data constructor operator (starts with ':', or '[]')
-- Pretty inefficient!
isDataSymOcc (OccName DataName s) = isLexConSym (decodeFS s)
-- Data constructor operator (starts with ':', or '[]')
-- Pretty inefficient!
isDataSymOcc (OccName DataName s) = isLexConSym (decodeFS s)