summaryrefslogtreecommitdiff
path: root/compiler/rename/RnSource.hs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2018-03-05 14:50:00 +0000
committerSimon Peyton Jones <simonpj@microsoft.com>2018-03-05 14:50:00 +0000
commit7d491ae76b32a78c1ea09a324f67937adceecfc2 (patch)
tree4ca58d1ed8cf8800a5d91e8246583ec0cc486407 /compiler/rename/RnSource.hs
parent1c062b794bf71a329f65813ce7b72fe2bd3935f0 (diff)
downloadhaskell-wip/T13324.tar.gz
Use LHsSigWcType in DerivDeclwip/T13324
This prepares the way for the fix for Trac #13324, by using LHsSigWcType for the instance type in DerivDecl, but nowhere else. See comments on Phab:D4383
Diffstat (limited to 'compiler/rename/RnSource.hs')
-rw-r--r--compiler/rename/RnSource.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler/rename/RnSource.hs b/compiler/rename/RnSource.hs
index 447871a7f2..53feacb8df 100644
--- a/compiler/rename/RnSource.hs
+++ b/compiler/rename/RnSource.hs
@@ -634,7 +634,8 @@ rnClsInstDecl (ClsInstDecl { cid_poly_ty = inst_ty, cid_binds = mbinds
, cid_sigs = uprags, cid_tyfam_insts = ats
, cid_overlap_mode = oflag
, cid_datafam_insts = adts })
- = do { (inst_ty', inst_fvs) <- rnLHsInstType (text "an instance declaration") inst_ty
+ = do { let ctxt = GenericCtx (text "an instance declaration")
+ ; (inst_ty', inst_fvs) <- rnHsSigType ctxt inst_ty
; let (ktv_names, _, head_ty') = splitLHsInstDeclTy inst_ty'
; let cls = case hsTyGetAppHead_maybe head_ty' of
Nothing -> mkUnboundName (mkTcOccFS (fsLit "<class>"))
@@ -945,7 +946,8 @@ rnSrcDerivDecl (DerivDecl ty deriv_strat overlap)
; unless standalone_deriv_ok (addErr standaloneDerivErr)
; failIfTc (isJust deriv_strat && not deriv_strats_ok) $
illegalDerivStrategyErr $ fmap unLoc deriv_strat
- ; (ty', fvs) <- rnLHsInstType (text "a deriving declaration") ty
+ ; let ctxt = GenericCtx (text "a deriving declaration")
+ ; (ty', fvs) <- rnHsSigWcType ctxt ty
; return (DerivDecl ty' deriv_strat overlap, fvs) }
standaloneDerivErr :: SDoc
@@ -1124,7 +1126,8 @@ rnHsVectDecl (HsVectClassIn s cls)
rnHsVectDecl (HsVectClassOut _)
= panic "RnSource.rnHsVectDecl: Unexpected 'HsVectClassOut'"
rnHsVectDecl (HsVectInstIn instTy)
- = do { (instTy', fvs) <- rnLHsInstType (text "a VECTORISE pragma") instTy
+ = do { let ctxt = GenericCtx (text "a VECTORISE pragma")
+ ; (instTy', fvs) <- rnHsSigType ctxt instTy
; return (HsVectInstIn instTy', fvs)
}
rnHsVectDecl (HsVectInstOut _)