diff options
Diffstat (limited to 'haddock-api/src/Haddock')
| -rw-r--r-- | haddock-api/src/Haddock/Interface.hs | 2 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Interface/AttachInstances.hs | 20 | 
2 files changed, 9 insertions, 13 deletions
diff --git a/haddock-api/src/Haddock/Interface.hs b/haddock-api/src/Haddock/Interface.hs index 1bb04ed3..8b04d76b 100644 --- a/haddock-api/src/Haddock/Interface.hs +++ b/haddock-api/src/Haddock/Interface.hs @@ -228,7 +228,7 @@ buildHomeLinks ifaces = foldl upd Map.empty (reverse ifaces)          foldl' keep_old old_env exported_names        | otherwise = foldl' keep_new old_env exported_names        where -        exported_names = ifaceVisibleExports iface +        exported_names = ifaceVisibleExports iface ++ map getName (ifaceInstances iface)          mdl            = ifaceMod iface          keep_old env n = Map.insertWith (\_ old -> old) n mdl env          keep_new env n = Map.insert n mdl env diff --git a/haddock-api/src/Haddock/Interface/AttachInstances.hs b/haddock-api/src/Haddock/Interface/AttachInstances.hs index c3e1275e..5adee457 100644 --- a/haddock-api/src/Haddock/Interface/AttachInstances.hs +++ b/haddock-api/src/Haddock/Interface/AttachInstances.hs @@ -66,23 +66,13 @@ attachInstances expInfo ifaces instIfaceMap = mapM attach ifaces                       , ifaceOrphanInstances = orphanInstances                       } -spanName :: NamedThing a => a -> InstHead e -> GenLocated SrcSpan e -> GenLocated SrcSpan e -spanName s (InstHead { ihdClsName = clsn }) (L instL instn) = -    let s1 = getSrcSpan s -        sn = if srcSpanFileName_maybe s1 == srcSpanFileName_maybe instL -                then instn -                else clsn -    in L (getSrcSpan s) sn -  attachOrphanInstances :: ExportInfo -> Interface -> IfaceMap -> InstIfaceMap -> [ClsInst] -> [DocInstance Name]  attachOrphanInstances expInfo iface ifaceMap instIfaceMap cls_instances = -  [ (synifyInstHead i, instLookup instDocMap n iface ifaceMap instIfaceMap, spanName n (synifyInstHead i) (L noSrcSpan n)) +  [ (synifyInstHead i, instLookup instDocMap n iface ifaceMap instIfaceMap, (L (getSrcSpan n) n))    | let is = [ (instanceHead' i, getName i) | i <- cls_instances, isOrphan (is_orphan i) ]    , (i@(_,_,cls,tys), n) <- sortBy (comparing $ first instHead) is    , not $ isInstanceHidden expInfo cls tys    ] -  where -    -- spanName: attach the location to the name that is the same file as the instance location  attachToExportItem :: ExportInfo -> Interface -> IfaceMap -> InstIfaceMap @@ -128,7 +118,13 @@ attachToExportItem expInfo iface ifaceMap instIfaceMap export =        ] }      attachFixities e = e - +    -- spanName: attach the location to the name that is the same file as the instance location +    spanName s (InstHead { ihdClsName = clsn }) (L instL instn) = +        let s1 = getSrcSpan s +            sn = if srcSpanFileName_maybe s1 == srcSpanFileName_maybe instL +                    then instn +                    else clsn +        in L (getSrcSpan s) sn      -- spanName on Either      spanNameE s (Left e) _ =  L (getSrcSpan s) (Left e)      spanNameE s (Right ok) linst =  | 
