From: Ian Lynagh Date: Thu, 9 Jun 2011 14:48:22 +0000 (+0100) Subject: Follow Src{Loc,Span} changes in other parts of the tree X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=77ffb1afd2eca3c338e7e7059827f6813ec81198 Follow Src{Loc,Span} changes in other parts of the tree --- diff --git a/compiler/main/GHC.hs b/compiler/main/GHC.hs index 3a054e1..5f7139c 100644 --- a/compiler/main/GHC.hs +++ b/compiler/main/GHC.hs @@ -186,10 +186,10 @@ module GHC ( compareFixity, -- ** Source locations - SrcLoc, pprDefnLoc, + SrcLoc(..), RealSrcLoc, pprDefnLoc, mkSrcLoc, noSrcLoc, srcLocFile, srcLocLine, srcLocCol, - SrcSpan, + SrcSpan(..), RealSrcSpan, mkSrcSpan, srcLocSpan, isGoodSrcSpan, noSrcSpan, srcSpanStart, srcSpanEnd, srcSpanFile, diff --git a/ghc/GhciTags.hs b/ghc/GhciTags.hs index ffec5be..95bc83e 100644 --- a/ghc/GhciTags.hs +++ b/ghc/GhciTags.hs @@ -18,7 +18,6 @@ import GHC import GhciMonad import Outputable import Util -import SrcLoc -- ToDo: figure out whether we need these, and put something appropriate -- into the GHC API instead diff --git a/utils/ghctags/Main.hs b/utils/ghctags/Main.hs index c86a92a..4ba8157 100644 --- a/utils/ghctags/Main.hs +++ b/utils/ghctags/Main.hs @@ -16,6 +16,7 @@ import Bag import Exception import FastString import MonadUtils ( liftIO ) +import SrcLoc -- Every GHC comes with Cabal anyways, so this is not a bad new dependency import Distribution.Simple.GHC ( ghcOptions ) @@ -49,7 +50,7 @@ type FileName = String type ThingName = String -- name of a defined entity in a Haskell program -- A definition we have found (we know its containing module, name, and location) -data FoundThing = FoundThing ModuleName ThingName SrcLoc +data FoundThing = FoundThing ModuleName ThingName RealSrcLoc -- Data we have obtained from a file (list of things we found) data FileData = FileData FileName [FoundThing] (Map Int String) @@ -261,8 +262,10 @@ boundValues mod group = in vals ++ tys ++ fors where found = foundOfLName mod -startOfLocated :: Located a -> SrcLoc -startOfLocated lHs = srcSpanStart $ getLoc lHs +startOfLocated :: Located a -> RealSrcLoc +startOfLocated lHs = case getLoc lHs of + RealSrcSpan l -> realSrcSpanStart l + UnhelpfulSpan _ -> panic "startOfLocated UnhelpfulSpan" foundOfLName :: ModuleName -> Located Name -> FoundThing foundOfLName mod id = FoundThing mod (getOccString $ unLoc id) (startOfLocated id)