Commit de73aab4 authored by mnislaih's avatar mnislaih
Browse files

Fix some corner cases in :print after the recent changes

parent 8f081b64
...@@ -76,8 +76,12 @@ pprintClosureCommand session bindThings force str = do ...@@ -76,8 +76,12 @@ pprintClosureCommand session bindThings force str = do
-- Then, we extract a substitution, -- Then, we extract a substitution,
-- mapping the old tyvars to the reconstructed types. -- mapping the old tyvars to the reconstructed types.
let Just reconstructed_type = termType term let Just reconstructed_type = termType term
mb_subst = tcUnifyTys (const BindMe) [idType id] [reconstructed_type] -- tcUnifyTys doesn't look through forall's, so we drop them from
ASSERT (isJust mb_subst) return mb_subst -- the original type, instead of sigma-typing the reconstructed type
mb_subst = tcUnifyTys (const BindMe) [dropForAlls$ idType id]
[reconstructed_type]
ASSERT2 (isJust mb_subst, ppr reconstructed_type $$ (ppr$ idType id))
return mb_subst
applySubstToEnv :: Session -> TvSubst -> IO () applySubstToEnv :: Session -> TvSubst -> IO ()
applySubstToEnv cms subst | isEmptyTvSubst subst = return () applySubstToEnv cms subst | isEmptyTvSubst subst = return ()
......
...@@ -565,7 +565,8 @@ cvObtainTerm1 hsc_env force mb_ty hval = runTR hsc_env $ do ...@@ -565,7 +565,8 @@ cvObtainTerm1 hsc_env force mb_ty hval = runTR hsc_env $ do
, ptext SLIT("reOrderTerms") $$ (ppr pointed $$ ppr unpointed)) , ptext SLIT("reOrderTerms") $$ (ppr pointed $$ ppr unpointed))
head unpointed : reOrderTerms pointed (tail unpointed) tys head unpointed : reOrderTerms pointed (tail unpointed) tys
isMonomorphic = isEmptyVarSet . tyVarsOfType isMonomorphic ty | isForAllTy ty = False
isMonomorphic ty = (isEmptyVarSet . tyVarsOfType) ty
zonkTerm :: Term -> TcM Term zonkTerm :: Term -> TcM Term
zonkTerm = foldTerm idTermFoldM { zonkTerm = foldTerm idTermFoldM {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment