X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghci%2FGhciTags.hs;h=a974c01ed384575c5bdd5b72bb9c494e3702a23d;hb=bd50bd07d54631d802598b6fb9a6f468afa823cf;hp=686633e458c2dff875d42a1943614648483f4e8b;hpb=c5f6a3c65987b467cb64be30abd7a10ea6280b67;p=ghc-hetmet.git diff --git a/compiler/ghci/GhciTags.hs b/compiler/ghci/GhciTags.hs index 686633e..a974c01 100644 --- a/compiler/ghci/GhciTags.hs +++ b/compiler/ghci/GhciTags.hs @@ -6,6 +6,13 @@ -- ----------------------------------------------------------------------------- +{-# OPTIONS -w #-} +-- The above warning supression flag is a temporary kludge. +-- While working on this module you are encouraged to remove it and fix +-- any warnings in the module. See +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings +-- for details + module GhciTags (createCTagsFileCmd, createETagsFileCmd) where import GHC @@ -18,6 +25,7 @@ import Util import Name (nameOccName) import OccName (pprOccName) +import Data.Maybe import Control.Exception import Data.List import Control.Monad @@ -62,11 +70,13 @@ createTagsFile session tagskind tagFile = do ++ GHC.moduleNameString (GHC.moduleName m) ++ "' is not interpreted")) mbModInfo <- GHC.getModuleInfo session m - let unqual - | Just modinfo <- mbModInfo, - Just unqual <- GHC.modInfoPrintUnqualified modinfo = unqual - | otherwise = GHC.alwaysQualify - + unqual <- + case mbModInfo of + Just minf -> do + mb_print_unqual <- GHC.mkPrintUnqualifiedForModule session minf + return (fromMaybe GHC.alwaysQualify mb_print_unqual) + Nothing -> + return GHC.alwaysQualify case mbModInfo of Just modInfo -> return $! listTags unqual modInfo _ -> return [] @@ -81,7 +91,7 @@ listTags :: PrintUnqualified -> GHC.ModuleInfo -> [TagInfo] listTags unqual modInfo = [ tagInfo unqual name loc | name <- GHC.modInfoExports modInfo - , let loc = nameSrcLoc name + , let loc = srcSpanStart (nameSrcSpan name) , isGoodSrcLoc loc ]