From: simonmar Date: Tue, 22 Jul 2003 14:24:57 +0000 (+0000) Subject: [project @ 2003-07-22 14:24:57 by simonmar] X-Git-Tag: Approx_11550_changesets_converted~665 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=3c36d064aa4b141f6a17574253d97363967a8fe8;hp=261dd3171651ba3fa54b85213a70a3502052d416 [project @ 2003-07-22 14:24:57 by simonmar] Fix a nasty bug in eq_ufVar, which meant that unfoldings were comparing equal when non-local names in the unfolding had changed, which could lead to erroneously avoiding recompilation. This bug could cause bad behaviour along the lines of "my program was segfaulting, but I did make clean; make and now it works!". merge to STABLE --- diff --git a/ghc/compiler/hsSyn/HsCore.lhs b/ghc/compiler/hsSyn/HsCore.lhs index 86f657b..27b6ae6 100644 --- a/ghc/compiler/hsSyn/HsCore.lhs +++ b/ghc/compiler/hsSyn/HsCore.lhs @@ -318,7 +318,7 @@ eq_ufVar :: (NamedThing name, Ord name) => EqHsEnv name -> name -> name -> Bool -- differences when comparing interface files eq_ufVar env n1 n2 = case lookupFM env n1 of Just n1 -> check n1 - Nothing -> check n2 + Nothing -> check n1 where check n1 = eqNameByOcc (getName n1) (getName n2)