X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghci%2FLinker.lhs;h=d44b22a496bc01297180ff93eaaeadc3b89b2d11;hb=8fcfc8d6e42ea5bf49422024bc71d3728ee97db9;hp=bce79c257f011d546e8c516d9be517de8675887a;hpb=0169d632bbff08b6031cda428acad0de35fcaa86;p=ghc-hetmet.git diff --git a/compiler/ghci/Linker.lhs b/compiler/ghci/Linker.lhs index bce79c2..d44b22a 100644 --- a/compiler/ghci/Linker.lhs +++ b/compiler/ghci/Linker.lhs @@ -161,7 +161,7 @@ deleteFromLinkEnv to_remove -- We use this string to lookup the interpreter's internal representation of the name -- using the lookupOrig. -dataConInfoPtrToName :: Ptr () -> TcM Name +dataConInfoPtrToName :: Ptr () -> TcM (Either String Name) dataConInfoPtrToName x = do theString <- ioToTcRn $ do let ptr = castPtr x :: Ptr StgInfoTable @@ -173,7 +173,8 @@ dataConInfoPtrToName x = do occFS = mkFastStringByteList occ occName = mkOccNameFS OccName.dataName occFS modName = mkModule (fsToPackageId pkgFS) (mkModuleNameFS modFS) - lookupOrig modName occName + return (Left$ showSDoc$ ppr modName <> dot <> ppr occName ) + `recoverM` (Right `fmap` lookupOrig modName occName) where