Fix nasty recompilation bug in MkIface.computeChangedOccs
[ghc-hetmet.git] / compiler / iface / MkIface.lhs
index e335f75..1521069 100644 (file)
@@ -181,6 +181,10 @@ code of A, and thereby haul in all the stuff reachable from it.
 haul in all the unfoldings for B, in case the module that imports A *is*
 compiled with -O.  I think this is the case.]
 
+SimonM [30/11/2007]: I believe the above is all out of date; the
+current implementation doesn't do it this way.  Instead, when any of
+the dependencies of a declaration changes, the version of the
+declaration itself changes.
 
 \begin{code}
 #include "HsVersions.h"
@@ -704,6 +708,8 @@ computeChangedOccs ver_fn this_module old_usages eq_info
     -- return True if an external name has changed
     name_changed :: Name -> Bool
     name_changed nm
+       | isWiredInName nm      -- Wired-in things don't get into interface
+       = False                 -- files and hence don't get into the ver_fn
         | Just ents <- lookupUFM usg_modmap (moduleName mod),
           Just v    <- lookupUFM ents parent_occ
         = v < new_version