X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=utils%2Fghctags%2FGhcTags.hs;h=88c2dcbd0201fc2a32800b20473e6da1dd8eedbe;hp=a011a9dec16a69b05eb808f38f9c40e505e3ac54;hb=6735097cdbe113e74555a5a748b0648e5ed762b5;hpb=9252667140f745b407796f8a465690422cd5ce86 diff --git a/utils/ghctags/GhcTags.hs b/utils/ghctags/GhcTags.hs index a011a9d..88c2dcb 100644 --- a/utils/ghctags/GhcTags.hs +++ b/utils/ghctags/GhcTags.hs @@ -220,7 +220,8 @@ boundValues group = tys = concat $ map tyBound (hs_tyclds group) where tyBound ltcd = case unLoc ltcd of ForeignType { tcdLName = n } -> [foundOfLName n] - TyData { tcdLName = n } -> [foundOfLName n] + TyData { tcdLName = tycon, tcdCons = cons } -> + dataNames tycon cons TySynonym { tcdLName = n } -> [foundOfLName n] ClassDecl { tcdLName = n } -> [foundOfLName n] fors = concat $ map forBound (hs_fords group) @@ -228,6 +229,8 @@ boundValues group = ForeignImport n _ _ -> [foundOfLName n] ForeignExport { } -> [] in vals ++ tys ++ fors + where dataNames tycon cons = foundOfLName tycon : map conName cons + conName td = foundOfLName $ con_name $ unLoc td posOfLocated :: Located a -> Pos posOfLocated lHs = srcLocToPos $ srcSpanStart $ getLoc lHs @@ -243,3 +246,4 @@ boundThings lbinding = PatBind { pat_lhs = lhs } -> panic "Pattern at top level" VarBind { var_id = id } -> [FoundThing (getOccString id) (posOfLocated lbinding)] AbsBinds { } -> [] -- nothing interesting in a type abstraction +