From: simonpj Date: Thu, 5 May 2005 12:39:19 +0000 (+0000) Subject: [project @ 2005-05-05 12:39:19 by simonpj] X-Git-Tag: Initial_conversion_from_CVS_complete~596 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=65a95d52d7ad2a911f7c8d18b34f0b71002d448f;p=ghc-hetmet.git [project @ 2005-05-05 12:39:19 by simonpj] Only compare hi-boot iface with mother module if there *is* an hi-boot iface --- diff --git a/ghc/compiler/iface/TcIface.lhs b/ghc/compiler/iface/TcIface.lhs index 5062fd9..3addc10 100644 --- a/ghc/compiler/iface/TcIface.lhs +++ b/ghc/compiler/iface/TcIface.lhs @@ -237,10 +237,19 @@ tcHiBootIface mod ; if not (isOneShot mode) -- In --make and interactive mode, if this module has an hs-boot file -- we'll have compiled it already, and it'll be in the HPT + -- + -- We check wheher the interface is a *boot* interface. + -- It can happen (when using GHC from Visual Studio) that we + -- compile a module in TypecheckOnly mode, with a stable, + -- fully-populated HPT. In that case the boot interface isn't there + -- (it's been replaced by the mother module) so we can't check it. + -- And that's fine, because if M's ModInfo is in the HPT, then + -- it's been compiled once, and we don't need to check the boot iface then do { hpt <- getHpt ; case lookupModuleEnv hpt mod of - Just info -> return (hm_details info) - Nothing -> return emptyModDetails } + Just info | mi_boot (hm_iface info) + -> return (hm_details info) + other -> return emptyModDetails } else do -- OK, so we're in one-shot mode.