X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FbasicTypes%2FSrcLoc.lhs;h=7e432518639dffbf559dac8a2e15774c7db3f480;hb=08652e67c4d5d9a40687f93c286021a867c1bca0;hp=d2df86b99f44af12747b7a7a6da046313b24ab48;hpb=9ee6397787a1400c63e3d807de5996ca6ee9ecc8;p=ghc-hetmet.git diff --git a/compiler/basicTypes/SrcLoc.lhs b/compiler/basicTypes/SrcLoc.lhs index d2df86b..7e43251 100644 --- a/compiler/basicTypes/SrcLoc.lhs +++ b/compiler/basicTypes/SrcLoc.lhs @@ -38,8 +38,6 @@ module SrcLoc ( leftmost_smallest, leftmost_largest, rightmost, spans, isSubspanOf ) where -#include "HsVersions.h" - import Util import Outputable import FastString @@ -57,8 +55,8 @@ this is the obvious stuff: \begin{code} data SrcLoc = SrcLoc FastString -- A precise location (file name) - !Int -- line number, begins at 1 - !Int -- column number, begins at 0 + {-# UNPACK #-} !Int -- line number, begins at 1 + {-# UNPACK #-} !Int -- column number, begins at 0 -- Don't ask me why lines start at 1 and columns start at -- zero. That's just the way it is, so there. --SDM @@ -77,9 +75,9 @@ mkSrcLoc :: FastString -> Int -> Int -> SrcLoc mkSrcLoc x line col = SrcLoc x line col noSrcLoc, generatedSrcLoc, interactiveSrcLoc :: SrcLoc -noSrcLoc = UnhelpfulLoc FSLIT("") -generatedSrcLoc = UnhelpfulLoc FSLIT("") -interactiveSrcLoc = UnhelpfulLoc FSLIT("") +noSrcLoc = UnhelpfulLoc (fsLit "") +generatedSrcLoc = UnhelpfulLoc (fsLit "") +interactiveSrcLoc = UnhelpfulLoc (fsLit "") mkGeneralSrcLoc :: FastString -> SrcLoc mkGeneralSrcLoc = UnhelpfulLoc @@ -90,7 +88,7 @@ isGoodSrcLoc _other = False srcLocFile :: SrcLoc -> FastString srcLocFile (SrcLoc fname _ _) = fname -srcLocFile _other = FSLIT(" Int srcLocLine (SrcLoc _ l _) = l @@ -167,27 +165,27 @@ span of (1,1)-(1,1) is zero characters long. -} data SrcSpan = SrcSpanOneLine -- a common case: a single line - { srcSpanFile :: FastString, - srcSpanLine :: !Int, - srcSpanSCol :: !Int, - srcSpanECol :: !Int + { srcSpanFile :: !FastString, + srcSpanLine :: {-# UNPACK #-} !Int, + srcSpanSCol :: {-# UNPACK #-} !Int, + srcSpanECol :: {-# UNPACK #-} !Int } | SrcSpanMultiLine - { srcSpanFile :: FastString, - srcSpanSLine :: !Int, - srcSpanSCol :: !Int, - srcSpanELine :: !Int, - srcSpanECol :: !Int + { srcSpanFile :: !FastString, + srcSpanSLine :: {-# UNPACK #-} !Int, + srcSpanSCol :: {-# UNPACK #-} !Int, + srcSpanELine :: {-# UNPACK #-} !Int, + srcSpanECol :: {-# UNPACK #-} !Int } | SrcSpanPoint - { srcSpanFile :: FastString, - srcSpanLine :: !Int, - srcSpanCol :: !Int + { srcSpanFile :: !FastString, + srcSpanLine :: {-# UNPACK #-} !Int, + srcSpanCol :: {-# UNPACK #-} !Int } - | UnhelpfulSpan FastString -- Just a general indication + | UnhelpfulSpan !FastString -- Just a general indication -- also used to indicate an empty span #ifdef DEBUG @@ -204,8 +202,8 @@ instance Ord SrcSpan where (srcSpanEnd a `compare` srcSpanEnd b) noSrcSpan, wiredInSrcSpan :: SrcSpan -noSrcSpan = UnhelpfulSpan FSLIT("") -wiredInSrcSpan = UnhelpfulSpan FSLIT("") +noSrcSpan = UnhelpfulSpan (fsLit "") +wiredInSrcSpan = UnhelpfulSpan (fsLit "") mkGeneralSrcSpan :: FastString -> SrcSpan mkGeneralSrcSpan = UnhelpfulSpan @@ -313,7 +311,7 @@ combineSrcSpans start end pprDefnLoc :: SrcSpan -> SDoc -- "defined at ..." pprDefnLoc loc - | isGoodSrcSpan loc = ptext SLIT("Defined at") <+> ppr loc + | isGoodSrcSpan loc = ptext (sLit "Defined at") <+> ppr loc | otherwise = ppr loc instance Outputable SrcSpan where