From: sof Date: Tue, 3 Mar 1998 18:57:49 +0000 (+0000) Subject: [project @ 1998-03-03 18:57:49 by sof] X-Git-Tag: Approx_2487_patches~892 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=d43f68525f13fff93bed18e9f63ee1c5f962a861;p=ghc-hetmet.git [project @ 1998-03-03 18:57:49 by sof] addAvailEnv: special handling of explicit exports of class methods. --- diff --git a/ghc/compiler/rename/RnNames.lhs b/ghc/compiler/rename/RnNames.lhs index 097cdd7..127eef7 100644 --- a/ghc/compiler/rename/RnNames.lhs +++ b/ghc/compiler/rename/RnNames.lhs @@ -412,11 +412,17 @@ addAvailEnv :: Bool -> RdrNameIE -> AvailEnv -> AvailInfo -> RnM s d AvailEnv addAvailEnv warn_dups ie env NotAvailable = returnRn env addAvailEnv warn_dups ie env (AvailTC _ []) = returnRn env addAvailEnv warn_dups ie env avail - | warn_dups = mapMaybeRn (addErrRn . availClashErr) () conflict `thenRn_` + | warn_dups = mapMaybeRn (addErrRn . availClashErr) () conflict `thenRn_` returnRn (addToFM_C addAvail env key elt) | otherwise = returnRn (addToFM_C addAvail env key elt) where - key = nameOccName (availName avail) + occ_avail = nameOccName (availName avail) + occ_ie = ieOcc ie + key + | occ_ie == occ_avail = occ_avail + | otherwise = occ_ie + -- export item is a class method, use export occ name instead. + elt = (ie,avail,reports_on) reports_on