From d43f68525f13fff93bed18e9f63ee1c5f962a861 Mon Sep 17 00:00:00 2001 From: sof Date: Tue, 3 Mar 1998 18:57:49 +0000 Subject: [PATCH] [project @ 1998-03-03 18:57:49 by sof] addAvailEnv: special handling of explicit exports of class methods. --- ghc/compiler/rename/RnNames.lhs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 -- 1.7.10.4