diff options
author | Ben Gamari <ben@smart-cactus.org> | 2016-05-22 12:42:23 +0200 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-05-22 12:43:59 +0200 |
commit | 6193f6d07f380436048928182ef511f167909a53 (patch) | |
tree | 98d0ed3775695445d09b419b72cf00daca4e36b6 /haddock-api/src/Haddock | |
parent | c03dad1c5d4ab7c44234d145ba9c13f17a918201 (diff) |
Don't consider default class ops when looking for decls
When we are looking for an operation within a class we don't care about
`default`-type declarations. This was the cause of #505.
Diffstat (limited to 'haddock-api/src/Haddock')
-rw-r--r-- | haddock-api/src/Haddock/Interface/Create.hs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/haddock-api/src/Haddock/Interface/Create.hs b/haddock-api/src/Haddock/Interface/Create.hs index 8d561d68..e0b52cb5 100644 --- a/haddock-api/src/Haddock/Interface/Create.hs +++ b/haddock-api/src/Haddock/Interface/Create.hs @@ -783,8 +783,13 @@ extractDecl name mdl decl | otherwise = case unLoc decl of TyClD d@ClassDecl {} -> - let matches = [ sig | sig <- tcdSigs d, name `elem` sigName sig, - isTypeLSig sig ] -- TODO: document fixity + let matches = [ lsig + | lsig <- tcdSigs d + , ClassOpSig False _ _ <- pure $ unLoc lsig + -- Note: exclude `default` declarations (see #505) + , name `elem` sigName lsig + ] + -- TODO: document fixity in case matches of [s0] -> let (n, tyvar_names) = (tcdName d, tyClDeclTyVars d) L pos sig = addClassContext n tyvar_names s0 |