Commit 43213e90 authored by mnislaih's avatar mnislaih
Browse files

Fix #3067: GHCi panics with 'initTc:LIE' while :stepping on code with funny types

The problem is that calls to boxyUnify would panic if the types involved
contained type functions. 
It looks like one should wrap these calls with getLIE, although I don't
really know what I am doing here
parent 371d661d
......@@ -585,7 +585,7 @@ addConstraint actual expected = do
recoverTR (traceTR $ fsep [text "Failed to unify", ppr actual,
text "with", ppr expected])
(congruenceNewtypes actual expected >>=
uncurry boxyUnify >> return ())
(getLIE . uncurry boxyUnify) >> return ())
-- TOMDO: what about the coercion?
-- we should consider family instances
......@@ -842,7 +842,7 @@ improveRTTIType hsc_env _ty rtti_ty = runTR_maybe hsc_env $ do
(ty_tvs, _, _) <- tcInstType return ty
(ty_tvs', _, ty') <- tcInstType (mapM tcInstTyVar) ty
(_, _, rtti_ty') <- tcInstType (mapM tcInstTyVar) (sigmaType rtti_ty)
boxyUnify rtti_ty' ty'
getLIE(boxyUnify rtti_ty' ty')
tvs1_contents <- zonkTcTyVars ty_tvs'
let subst = (uncurry zipTopTvSubst . unzip)
[(tv,ty) | (tv,ty) <- zip ty_tvs tvs1_contents
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