diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2017-12-20 15:36:49 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2017-12-21 14:14:21 +0000 |
commit | 584cbd4a19887497776ce1f61c15df652b8b2ea4 (patch) | |
tree | d38a508d7e3a4f243d4750174cf2a5d611f327da /compiler/rename | |
parent | 4d41e9212d1fdf109f2d0174d204644446f5874c (diff) | |
download | haskell-584cbd4a19887497776ce1f61c15df652b8b2ea4.tar.gz |
Simplify HsPatSynDetails
This is a pure refactoring. Use HsConDetails to implement
HsPatSynDetails, instead of defining a whole new data type.
Less code, fewer types, all good.
Diffstat (limited to 'compiler/rename')
-rw-r--r-- | compiler/rename/RnBinds.hs | 14 | ||||
-rw-r--r-- | compiler/rename/RnSource.hs | 2 |
2 files changed, 8 insertions, 8 deletions
diff --git a/compiler/rename/RnBinds.hs b/compiler/rename/RnBinds.hs index 02a37b20ef..dc6c946f17 100644 --- a/compiler/rename/RnBinds.hs +++ b/compiler/rename/RnBinds.hs @@ -660,19 +660,19 @@ rnPatSynBind sig_fn bind@(PSB { psb_id = L l name -- so that the binding locations are reported -- from the left-hand side case details of - PrefixPatSyn vars -> + PrefixCon vars -> do { checkDupRdrNames vars ; names <- mapM lookupPatSynBndr vars - ; return ( (pat', PrefixPatSyn names) + ; return ( (pat', PrefixCon names) , mkFVs (map unLoc names)) } - InfixPatSyn var1 var2 -> + InfixCon var1 var2 -> do { checkDupRdrNames [var1, var2] ; name1 <- lookupPatSynBndr var1 ; name2 <- lookupPatSynBndr var2 -- ; checkPrecMatch -- TODO - ; return ( (pat', InfixPatSyn name1 name2) + ; return ( (pat', InfixCon name1 name2) , mkFVs (map unLoc [name1, name2])) } - RecordPatSyn vars -> + RecCon vars -> do { checkDupRdrNames (map recordPatSynSelectorId vars) ; let rnRecordPatSynField (RecordPatSynField { recordPatSynSelectorId = visible @@ -682,7 +682,7 @@ rnPatSynBind sig_fn bind@(PSB { psb_id = L l name ; return $ RecordPatSynField { recordPatSynSelectorId = visible' , recordPatSynPatVar = hidden' } } ; names <- mapM rnRecordPatSynField vars - ; return ( (pat', RecordPatSyn names) + ; return ( (pat', RecCon names) , mkFVs (map (unLoc . recordPatSynPatVar) names)) } ; (dir', fvs2) <- case dir of @@ -706,7 +706,7 @@ rnPatSynBind sig_fn bind@(PSB { psb_id = L l name , psb_dir = dir' , psb_fvs = fvs' } selector_names = case details' of - RecordPatSyn names -> + RecCon names -> map (unLoc . recordPatSynSelectorId) names _ -> [] diff --git a/compiler/rename/RnSource.hs b/compiler/rename/RnSource.hs index c1f0df160c..e51d9efc43 100644 --- a/compiler/rename/RnSource.hs +++ b/compiler/rename/RnSource.hs @@ -2005,7 +2005,7 @@ extendPatSynEnv val_decls local_fix_env thing = do { -> TcM [(Name, [FieldLabel])] new_ps' bind names | L bind_loc (PatSynBind (PSB { psb_id = L _ n - , psb_args = RecordPatSyn as })) <- bind + , psb_args = RecCon as })) <- bind = do bnd_name <- newTopSrcBinder (L bind_loc n) let rnames = map recordPatSynSelectorId as |