@@ -965,27 +965,37 @@ getDocsBatch
965
965
:: HscEnv
966
966
-> Module -- ^ a moudle where the names are in scope
967
967
-> [Name ]
968
- -> IO [Either String (Maybe HsDocString , Map. Map Int HsDocString )]
968
+ -> IO [( Name , Either String (Maybe HsDocString , Map. Map Int HsDocString ) )]
969
969
getDocsBatch hsc_env _mod _names = do
970
970
((_warns,errs), res) <- initTc hsc_env HsSrcFile False _mod fakeSpan $ traverse findNameInfo _names
971
971
case res of
972
- Just x -> return $ map (first $ T. unpack . showGhc) x
972
+ Just x -> return $ fun x
973
973
Nothing -> throwErrors errs
974
974
where
975
+ fun :: [(Name , Either GetDocsFailure c )] -> [(Name , Either String c )]
976
+ fun =
977
+ map fun1
978
+ where
979
+ fun1 :: ((Name , Either GetDocsFailure c ) -> (Name , Either String c ))
980
+ fun1 = fmap (first $ T. unpack . showGhc)
981
+
975
982
throwErrors = liftIO . throwIO . mkSrcErr
976
983
977
- findNameInfo :: Name -> IOEnv (Env TcGblEnv TcLclEnv ) (Either GetDocsFailure (Maybe HsDocString , Map. Map Int HsDocString ))
984
+ findNameInfo :: Name -> IOEnv (Env TcGblEnv TcLclEnv ) (Name , Either GetDocsFailure (Maybe HsDocString , Map. Map Int HsDocString ))
978
985
findNameInfo name =
979
986
case nameModule_maybe name of
980
- Nothing -> return (Left $ NameHasNoModule name)
987
+ Nothing -> return (name, Left $ NameHasNoModule name)
981
988
Just mod -> do
982
- ModIface { mi_doc_hdr = mb_doc_hdr
983
- , mi_decl_docs = DeclDocMap dmap
984
- , mi_arg_docs = ArgDocMap amap
985
- } <- loadModuleInterface " getModuleInterface" mod
986
- pure $ if isNothing mb_doc_hdr && Map. null dmap && Map. null amap
987
- then Left (NoDocsInIface mod $ compiled name)
988
- else Right (Map. lookup name dmap, Map. findWithDefault mempty name amap)
989
+ ModIface
990
+ { mi_doc_hdr = mb_doc_hdr
991
+ , mi_decl_docs = DeclDocMap dmap
992
+ , mi_arg_docs = ArgDocMap amap
993
+ }
994
+ <- loadModuleInterface " getModuleInterface" mod
995
+ pure . (name,) $
996
+ if isNothing mb_doc_hdr && Map. null dmap && Map. null amap
997
+ then Left $ NoDocsInIface mod $ compiled name
998
+ else Right (Map. lookup name dmap, Map. findWithDefault mempty name amap)
989
999
compiled n =
990
1000
-- TODO: Find a more direct indicator.
991
1001
case nameSrcLoc n of
0 commit comments