[project @ 2001-05-31 09:46:21 by simonpj]
authorsimonpj <unknown>
Thu, 31 May 2001 09:46:21 +0000 (09:46 +0000)
committersimonpj <unknown>
Thu, 31 May 2001 09:46:21 +0000 (09:46 +0000)
----------------------------------
Fix an existential-constructor bug
----------------------------------

DON'T MERGE!

This fixes a bug I introduced in my
tidying up for scoped type variables.

You'll get bizarre behaviour from the HEAD if
you use existentials, until you add this fix!

ghc/compiler/typecheck/TcMatches.lhs

index 2e4e4e1..d6ce7a9 100644 (file)
@@ -224,9 +224,9 @@ tcMatchPats pats expected_ty thing_inside
        -- I'm a bit concerned that lie_req1 from an 'inner' pattern in the list
        -- might need (via lie_req2) something made available from an 'outer' 
        -- pattern.  But it's inconvenient to deal with, and I can't find an example
-    tcCheckExistentialPat pat_ids ex_tvs lie_avail lie_req1 rhs_ty     `thenTc` \ (lie_req1', ex_binds) ->
+    tcCheckExistentialPat pat_ids ex_tvs lie_avail lie_req2 rhs_ty     `thenTc` \ (lie_req2', ex_binds) ->
 
-    returnTc (result, lie_req1' `plusLIE` lie_req2, ex_binds)
+    returnTc (result, lie_req1 `plusLIE` lie_req2', ex_binds)
 
 tcAddScopedTyVars :: [RenamedHsType] -> TcM a -> TcM a
 -- Find the not-already-in-scope signature type variables,