From: simonpj Date: Fri, 23 Mar 2001 14:51:54 +0000 (+0000) Subject: [project @ 2001-03-23 14:51:54 by simonpj] X-Git-Tag: Approximately_9120_patches~2332 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=09fe7371cd36dd78b3801cc1c548bb375da7f2d9;p=ghc-hetmet.git [project @ 2001-03-23 14:51:54 by simonpj] Fix renamer error that prevented PrelBase compiling --- diff --git a/ghc/compiler/rename/RnEnv.lhs b/ghc/compiler/rename/RnEnv.lhs index e7f101f..3c25da0 100644 --- a/ghc/compiler/rename/RnEnv.lhs +++ b/ghc/compiler/rename/RnEnv.lhs @@ -10,7 +10,6 @@ module RnEnv where -- Export everything import {-# SOURCE #-} RnHiFiles -import HscTypes ( ModIface(..) ) import HsSyn import RdrHsSyn ( RdrNameIE ) import RdrName ( RdrName, rdrNameModule, rdrNameOcc, isQual, isUnqual, isOrig, @@ -20,6 +19,7 @@ import HsTypes ( hsTyVarName, replaceTyVarName ) import HscTypes ( Provenance(..), pprNameProvenance, hasBetterProv, ImportReason(..), GlobalRdrEnv, GlobalRdrElt(..), AvailEnv, AvailInfo, Avails, GenAvailInfo(..), NameSupply(..), + ModIface(..), Deprecations(..), lookupDeprec, extendLocalRdrEnv ) @@ -199,6 +199,15 @@ lookupTopBndrRn rdr_name -- So we have to filter out the non-local ones. -- A separate function (importsFromLocalDecls) reports duplicate top level -- decls, so here it's safe just to choose an arbitrary one. + + | isOrig rdr_name + -- This is here just to catch the PrelBase defn of (say) [] and similar + -- The parser reads the special syntax and returns an Orig RdrName + -- But the global_env contains only Qual RdrNames, so we won't + -- find it there; instead just get the name via the Orig route + = lookupOrigName rdr_name + + | otherwise = getModeRn `thenRn` \ mode -> if isInterfaceMode mode then lookupIfaceName rdr_name @@ -216,7 +225,7 @@ lookupTopBndrRn rdr_name Just gres -> case [n | GRE n _ _ <- gres, nameIsLocalOrFrom mod n] of [] -> Nothing (n:ns) -> Just n - + -- lookupSigOccRn is used for type signatures and pragmas -- Is this valid?