Commit 2899aa58 authored by eir@cis.upenn.edu's avatar eir@cis.upenn.edu

Fix some substitution InScopeSets

This is relevant to #11371.
parent 4faa1a63
......@@ -847,7 +847,7 @@ tcInstBinderX :: Maybe (VarEnv Kind)
tcInstBinderX mb_kind_info subst binder
| Just tv <- binderVar_maybe binder
= case lookup_tv tv of
Just ki -> return (extendTCvSubst subst tv ki, ki)
Just ki -> return (extendTCvSubstAndInScope subst tv ki, ki)
Nothing -> do { (subst', tv') <- newMetaTyVarX subst tv
; return (subst', mkTyVarTy tv') }
......
......@@ -693,7 +693,7 @@ newMetaTyVarX subst tyvar
-- See Note [Name of an instantiated type variable]
kind = substTyUnchecked subst (tyVarKind tyvar)
new_tv = mkTcTyVar name kind details
; return (extendTCvSubst (extendTCvInScope subst new_tv) tyvar
; return (extendTCvSubstAndInScope subst tyvar
(mkTyVarTy new_tv)
, new_tv)
}
......
......@@ -145,6 +145,7 @@ module TcType (
mkOpenTCvSubst, zipOpenTCvSubst,
mkTopTCvSubst, notElemTCvSubst, unionTCvSubst,
getTvSubstEnv, setTvSubstEnv, getTCvInScope, extendTCvInScope,
extendTCvInScopeList, extendTCvInScopeSet, extendTCvSubstAndInScope,
Type.lookupTyVar, Type.extendTCvSubst, Type.substTyVarBndr,
extendTCvSubstList, isInScope, mkTCvSubst, zipTyEnv, zipCoEnv,
Type.substTy, substTys, substTyWith, substTyWithCoVars,
......
......@@ -1864,7 +1864,11 @@ substTy subst@(TCvSubst in_scope tenv cenv) ty
| otherwise = ASSERT2( isValidTCvSubst subst,
text "in_scope" <+> ppr in_scope $$
text "tenv" <+> ppr tenv $$
text "tenvFVs"
<+> ppr (tyCoVarsOfTypes $ varEnvElts tenv) $$
text "cenv" <+> ppr cenv $$
text "cenvFVs"
<+> ppr (tyCoVarsOfCos $ varEnvElts cenv) $$
text "ty" <+> ppr ty )
ASSERT2( typeFVsInScope,
text "in_scope" <+> ppr in_scope $$
......
......@@ -154,8 +154,8 @@ module Type (
notElemTCvSubst,
getTvSubstEnv, setTvSubstEnv,
zapTCvSubst, getTCvInScope,
extendTCvInScope, extendTCvInScopeList,
extendTCvSubst, extendTCvSubstList,
extendTCvInScope, extendTCvInScopeList, extendTCvInScopeSet,
extendTCvSubst, extendTCvSubstList, extendTCvSubstAndInScope,
isInScope, composeTCvSubstEnv, composeTCvSubst, zipTyEnv, zipCoEnv,
isEmptyTCvSubst, unionTCvSubst,
......
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