%
-% (c) The GRASP/AQUA Project, Glasgow University, 1992-1994
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
%************************************************************************
%* *
mkGeneratedSrcLoc, -- Code generated within the compiler
- incSrcLine
+ incSrcLine,
+
+ srcLocFile -- return the file name part.
) where
#include "HsVersions.h"
import Outputable
import FastString ( unpackFS )
-import GlaExts ( Int(..), Int#, (+#) )
+import GlaExts ( Int(..), (+#) )
\end{code}
%************************************************************************
FAST_INT
| UnhelpfulSrcLoc FAST_STRING -- Just a general indication
+
+instance Ord SrcLoc where
+ compare NoSrcLoc NoSrcLoc = EQ
+ compare NoSrcLoc _ = GT
+ compare (UnhelpfulSrcLoc _) (UnhelpfulSrcLoc _) = EQ
+ compare (UnhelpfulSrcLoc _) _ = GT
+ compare _ NoSrcLoc = LT
+ compare _ (UnhelpfulSrcLoc _) = LT
+ compare (SrcLoc _ y1) (SrcLoc _ y2) = compare IBOX(y1) IBOX(y2)
+
+instance Eq SrcLoc where
+ (==) x y = compare x y == EQ
+
\end{code}
Note that an entity might be imported via more than one route, and
isNoSrcLoc NoSrcLoc = True
isNoSrcLoc other = False
+srcLocFile :: SrcLoc -> FAST_STRING
+srcLocFile (SrcLoc fname _) = fname
+
incSrcLine :: SrcLoc -> SrcLoc
incSrcLine (SrcLoc s l) = SrcLoc s (l +# 1#)
incSrcLine loc = loc