summaryrefslogtreecommitdiff
path: root/compiler/GHC/ThToHs.hs
diff options
context:
space:
mode:
authorVladislav Zavialov <vlad.z.4096@gmail.com>2021-04-01 21:51:17 +0300
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-05-23 18:53:50 -0400
commitf8c6fce4a09762adea6009540e523c2b984b2978 (patch)
treefb0898eadf884f4320e5a05f783f6308663350e9 /compiler/GHC/ThToHs.hs
parentd82d38239f232c3970a8641bb6d47d436e3cbc11 (diff)
downloadhaskell-f8c6fce4a09762adea6009540e523c2b984b2978.tar.gz
HsToken for HsPar, ParPat, HsCmdPar (#19523)
This patch is a first step towards a simpler design for exact printing.
Diffstat (limited to 'compiler/GHC/ThToHs.hs')
-rw-r--r--compiler/GHC/ThToHs.hs18
1 files changed, 9 insertions, 9 deletions
diff --git a/compiler/GHC/ThToHs.hs b/compiler/GHC/ThToHs.hs
index f2f9695109..7aa9b73eb2 100644
--- a/compiler/GHC/ThToHs.hs
+++ b/compiler/GHC/ThToHs.hs
@@ -933,7 +933,7 @@ cvtl e = wrapLA (cvt e)
go cvt_lit mk_expr is_compound_lit = do
l' <- cvt_lit l
let e' = mk_expr l'
- return $ if is_compound_lit l' then HsPar noAnn (noLocA e') else e'
+ return $ if is_compound_lit l' then gHsPar (noLocA e') else e'
cvt (AppE x@(LamE _ _) y) = do { x' <- cvtl x; y' <- cvtl y
; return $ HsApp noComments (mkLHsPar x')
(mkLHsPar y')}
@@ -998,7 +998,7 @@ cvtl e = wrapLA (cvt e)
; y' <- cvtl y
; let px = parenthesizeHsExpr opPrec x'
py = parenthesizeHsExpr opPrec y'
- ; wrapParLA (HsPar noAnn)
+ ; wrapParLA gHsPar
$ OpApp noAnn px s' py }
-- Parenthesise both arguments and result,
-- to ensure this operator application does
@@ -1006,17 +1006,17 @@ cvtl e = wrapLA (cvt e)
-- See Note [Operator association]
cvt (InfixE Nothing s (Just y)) = ensureValidOpExp s $
do { s' <- cvtl s; y' <- cvtl y
- ; wrapParLA (HsPar noAnn) $
+ ; wrapParLA gHsPar $
SectionR noComments s' y' }
-- See Note [Sections in HsSyn] in GHC.Hs.Expr
cvt (InfixE (Just x) s Nothing ) = ensureValidOpExp s $
do { x' <- cvtl x; s' <- cvtl s
- ; wrapParLA (HsPar noAnn) $
+ ; wrapParLA gHsPar $
SectionL noComments x' s' }
cvt (InfixE Nothing s Nothing ) = ensureValidOpExp s $
do { s' <- cvtl s
- ; return $ HsPar noAnn s' }
+ ; return $ gHsPar s' }
-- Can I indicate this is an infix thing?
-- Note [Dropping constructors]
@@ -1027,7 +1027,7 @@ cvtl e = wrapLA (cvt e)
_ -> mkLHsPar x'
; cvtOpApp x'' s y } -- Note [Converting UInfix]
- cvt (ParensE e) = do { e' <- cvtl e; return $ HsPar noAnn e' }
+ cvt (ParensE e) = do { e' <- cvtl e; return $ gHsPar e' }
cvt (SigE e t) = do { e' <- cvtl e; t' <- cvtSigType t
; let pe = parenthesizeHsExpr sigPrec e'
; return $ ExprWithTySig noAnn pe (mkHsWildCardBndrs t') }
@@ -1208,7 +1208,7 @@ cvtMatch :: HsMatchContext GhcPs
cvtMatch ctxt (TH.Match p body decs)
= do { p' <- cvtPat p
; let lp = case p' of
- (L loc SigPat{}) -> L loc (ParPat noAnn p') -- #14875
+ (L loc SigPat{}) -> L loc (gParPat p') -- #14875
_ -> p'
; g' <- cvtGuard body
; decs' <- cvtLocalDecs (text "a where clause") decs
@@ -1322,7 +1322,7 @@ cvtp (ConP s ts ps) = do { s' <- cNameN s
}
}
cvtp (InfixP p1 s p2) = do { s' <- cNameN s; p1' <- cvtPat p1; p2' <- cvtPat p2
- ; wrapParLA (ParPat noAnn) $
+ ; wrapParLA gParPat $
ConPat
{ pat_con_ext = noAnn
, pat_con = s'
@@ -1336,7 +1336,7 @@ cvtp (UInfixP p1 s p2) = do { p1' <- cvtPat p1; cvtOpAppP p1' s p2 } -- Note [Co
cvtp (ParensP p) = do { p' <- cvtPat p;
; case unLoc p' of -- may be wrapped ConPatIn
ParPat {} -> return $ unLoc p'
- _ -> return $ ParPat noAnn p' }
+ _ -> return $ gParPat p' }
cvtp (TildeP p) = do { p' <- cvtPat p; return $ LazyPat noAnn p' }
cvtp (BangP p) = do { p' <- cvtPat p; return $ BangPat noAnn p' }
cvtp (TH.AsP s p) = do { s' <- vNameN s; p' <- cvtPat p