summaryrefslogtreecommitdiff
path: root/compiler/rename
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2016-07-01 01:15:01 +0200
committerBen Gamari <ben@smart-cactus.org>2016-07-01 14:12:37 +0200
commitb412d8230b20223beff797d6207868aea9fd2085 (patch)
treee04b5e55debdeba41e0b641b74763d278a331bc1 /compiler/rename
parent81b437bcc680745d5d50d731b978a1764f40ab36 (diff)
downloadhaskell-b412d8230b20223beff797d6207868aea9fd2085.tar.gz
Allow one type signature for multiple pattern synonyms
This makes pattern synonym signatures more consistent with normal type signatures. Updates haddock submodule. Differential Revision: https://phabricator.haskell.org/D2083
Diffstat (limited to 'compiler/rename')
-rw-r--r--compiler/rename/RnBinds.hs12
1 files changed, 6 insertions, 6 deletions
diff --git a/compiler/rename/RnBinds.hs b/compiler/rename/RnBinds.hs
index 0466de375e..f6c18b41c5 100644
--- a/compiler/rename/RnBinds.hs
+++ b/compiler/rename/RnBinds.hs
@@ -558,8 +558,8 @@ mkSigTvFn sigs
= add_scoped_tvs names (hsScopedTvs sig_ty) env
add_scoped_sig (L _ (TypeSig names sig_ty)) env
= add_scoped_tvs names (hsWcScopedTvs sig_ty) env
- add_scoped_sig (L _ (PatSynSig name sig_ty)) env
- = add_scoped_tvs [name] (hsScopedTvs sig_ty) env
+ add_scoped_sig (L _ (PatSynSig names sig_ty)) env
+ = add_scoped_tvs names (hsScopedTvs sig_ty) env
add_scoped_sig _ env = env
add_scoped_tvs :: [Located Name] -> [Name] -> NameEnv [Name] -> NameEnv [Name]
@@ -925,13 +925,13 @@ renameSig ctxt sig@(MinimalSig s (L l bf))
= do new_bf <- traverse (lookupSigOccRn ctxt sig) bf
return (MinimalSig s (L l new_bf), emptyFVs)
-renameSig ctxt sig@(PatSynSig v ty)
- = do { v' <- lookupSigOccRn ctxt sig v
+renameSig ctxt sig@(PatSynSig vs ty)
+ = do { new_vs <- mapM (lookupSigOccRn ctxt sig) vs
; (ty', fvs) <- rnHsSigType ty_ctxt ty
- ; return (PatSynSig v' ty', fvs) }
+ ; return (PatSynSig new_vs ty', fvs) }
where
ty_ctxt = GenericCtx (text "a pattern synonym signature for"
- <+> quotes (ppr v))
+ <+> ppr_sig_bndrs vs)
ppr_sig_bndrs :: [Located RdrName] -> SDoc
ppr_sig_bndrs bs = quotes (pprWithCommas ppr bs)