[Git][ghc/ghc][master] EPA: Clean up mkScope in Ast.hs

Marge Bot (@marge-bot) gitlab at gitlab.haskell.org
Tue Nov 28 13:02:04 UTC 2023



Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC


Commits:
af881674 by Alan Zimmerman at 2023-11-28T08:01:30-05:00
EPA: Clean up mkScope in Ast.hs

Now that we have HasLoc we can get rid of all the custom variants of
mkScope

For deb10-numa

Metric Increase:
    libdir

- - - - -


2 changed files:

- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Iface/Ext/Utils.hs


Changes:

=====================================
compiler/GHC/Iface/Ext/Ast.hs
=====================================
@@ -673,7 +673,7 @@ instance ToHie (EvBindContext (LocatedA TcEvBinds)) where
           let evDeps = evVarsOfTermList $ eb_rhs evbind
               depNames = EvBindDeps $ map varName evDeps
           concatM $
-            [ toHie (C (EvidenceVarBind (EvLetBind depNames) (combineScopes sc (mkScopeA span)) sp)
+            [ toHie (C (EvidenceVarBind (EvLetBind depNames) (combineScopes sc (mkScope span)) sp)
                                         (L span $ eb_lhs evbind))
             , toHie $ map (C EvidenceVarUse . L span) $ evDeps
             ]
@@ -682,13 +682,13 @@ instance ToHie (EvBindContext (LocatedA TcEvBinds)) where
 instance ToHie (LocatedA HsWrapper) where
   toHie (L osp wrap)
     = case wrap of
-        (WpLet bs)      -> toHie $ EvBindContext (mkScopeA osp) (getRealSpanA osp) (L osp bs)
+        (WpLet bs)      -> toHie $ EvBindContext (mkScope osp) (getRealSpanA osp) (L osp bs)
         (WpCompose a b) -> concatM $
           [toHie (L osp a), toHie (L osp b)]
         (WpFun a b _)   -> concatM $
           [toHie (L osp a), toHie (L osp b)]
         (WpEvLam a) ->
-          toHie $ C (EvidenceVarBind EvWrapperBind (mkScopeA osp) (getRealSpanA osp))
+          toHie $ C (EvidenceVarBind EvWrapperBind (mkScope osp) (getRealSpanA osp))
                 $ L osp a
         (WpEvApp a) ->
           concatMapM (toHie . C EvidenceVarUse . L osp) $ evVarsOfTermList a
@@ -859,11 +859,11 @@ instance HiePass p => ToHie (BindContext (LocatedA (HsBind (GhcPass p)))) where
                     (toHie $ fmap (BC context scope) binds)
             , toHie $ map (L span . abe_wrap) xs
             , toHie $
-                map (EvBindContext (mkScopeA span) (getRealSpanA span)
+                map (EvBindContext (mkScope span) (getRealSpanA span)
                     . L span) ev_binds
             , toHie $
                 map (C (EvidenceVarBind EvSigBind
-                                        (mkScopeA span)
+                                        (mkScope span)
                                         (getRealSpanA span))
                     . L span) ev_vars
             ]
@@ -899,14 +899,14 @@ instance HiePass p => ToHie (Located (PatSynBind (GhcPass p) (GhcPass p))) where
         ]
         where
           lhsScope = combineScopes varScope detScope
-          varScope = mkLScopeN var
-          patScope = mkScopeA $ getLoc pat
+          varScope = mkScope var
+          patScope = mkScope $ getLoc pat
           detScope = case dets of
-            (PrefixCon _ args) -> foldr combineScopes NoScope $ map mkLScopeN args
-            (InfixCon a b) -> combineScopes (mkLScopeN a) (mkLScopeN b)
+            (PrefixCon _ args) -> foldr combineScopes NoScope $ map mkScope args
+            (InfixCon a b) -> combineScopes (mkScope a) (mkScope b)
             (RecCon r) -> foldr go NoScope r
           go (RecordPatSynField a b) c = combineScopes c
-            $ combineScopes (mkLScopeN (foLabel a)) (mkLScopeN b)
+            $ combineScopes (mkScope (foLabel a)) (mkScope b)
           detSpan = case detScope of
             LocalScope a -> Just a
             _ -> Nothing
@@ -962,7 +962,7 @@ instance HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) where
         ]
       AsPat _ lname _ pat ->
         [ toHie $ C (PatternBind scope
-                                 (combineScopes (mkLScopeA pat) pscope)
+                                 (combineScopes (mkScope pat) pscope)
                                  rsp)
                     lname
         , toHie $ PS rsp scope pscope pat
@@ -990,7 +990,7 @@ instance HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) where
             , let ev_binds = cpt_binds ext
                   ev_vars = cpt_dicts ext
                   wrap = cpt_wrap ext
-                  evscope = mkScopeA ospan `combineScopes` scope `combineScopes` pscope
+                  evscope = mkScope ospan `combineScopes` scope `combineScopes` pscope
                  in concatM [ toHie $ EvBindContext scope rsp $ L ospan ev_binds
                             , toHie $ L ospan wrap
                             , toHie $ map (C (EvidenceVarBind EvPatternBind evscope rsp)
@@ -1023,7 +1023,7 @@ instance HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) where
         [ toHie $ PS rsp scope pscope pat
         , case hiePass @p of
             HieTc ->
-              let cscope = mkLScopeA pat in
+              let cscope = mkScope pat in
                 toHie $ TS (ResolvedScopes [cscope, scope, pscope])
                            sig
             HieRn -> pure []
@@ -1047,7 +1047,7 @@ instance HiePass p => ToHie (PScoped (LocatedA (Pat (GhcPass p)))) where
       contextify (PrefixCon tyargs args) =
         PrefixCon (taScopes scope argscope tyargs)
                   (patScopes rsp scope pscope args)
-        where argscope = foldr combineScopes NoScope $ map mkLScopeA args
+        where argscope = foldr combineScopes NoScope $ map mkScope args
       contextify (InfixCon a b) = InfixCon a' b'
         where [a', b'] = patScopes rsp scope pscope [a,b]
       contextify (RecCon r) = RecCon $ RC RecFieldMatch $ contextify_rec r
@@ -1078,14 +1078,14 @@ instance ToHie (LocatedA SyntaxExprTc) where
 
 instance ToHie (TScoped (HsPatSigType GhcRn)) where
   toHie (TS sc (HsPS (HsPSRn wcs tvs) body@(L span _))) = concatM $
-      [ bindingsOnly $ map (C $ TyVarBind (mkScopeA span) sc) (wcs++tvs)
+      [ bindingsOnly $ map (C $ TyVarBind (mkScope span) sc) (wcs++tvs)
       , toHie body
       ]
   -- See Note [Scoping Rules for SigPat]
 
 instance ToHie (TScoped (HsTyPat GhcRn)) where
   toHie (TS sc (HsTP (HsTPRn wcs imp_tvs exp_tvs) body@(L span _))) = concatM $
-      [ bindingsOnly $ map (C $ TyVarBind (mkScopeA span) sc) (wcs ++ imp_tvs ++ exp_tvs)
+      [ bindingsOnly $ map (C $ TyVarBind (mkScope span) sc) (wcs ++ imp_tvs ++ exp_tvs)
       , toHie body
       ]
 
@@ -1105,7 +1105,7 @@ instance ( ToHie (LocatedA (body (GhcPass p)))
          ) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) where
   toHie (L span g) = concatM $ makeNodeA g span : case g of
     GRHS _ guards body ->
-      [ toHie $ listScopes (mkLScopeA body) guards
+      [ toHie $ listScopes (mkScope body) guards
       , toHie body
       ]
 
@@ -1218,7 +1218,7 @@ instance HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) where
         [ toHie grhss
         ]
       HsLet _ _ binds _ expr ->
-        [ toHie $ RS (mkLScopeA expr) binds
+        [ toHie $ RS (mkScope expr) binds
         , toHie expr
         ]
       HsDo _ _ (L ispan stmts) ->
@@ -1248,7 +1248,7 @@ instance HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) where
         ]
       ExprWithTySig _ expr sig ->
         [ toHie expr
-        , toHie $ TS (ResolvedScopes [mkLScopeA expr]) sig
+        , toHie $ TS (ResolvedScopes [mkScope expr]) sig
         ]
       ArithSeq enum _ info ->
         [ toHie info
@@ -1258,7 +1258,7 @@ instance HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) where
         [ toHie expr
         ]
       HsProc _ pat cmdtop ->
-        [ toHie $ PS Nothing (mkLScopeA cmdtop) NoScope pat
+        [ toHie $ PS Nothing (mkScope cmdtop) NoScope pat
         , toHie cmdtop
         ]
       HsStatic _ expr ->
@@ -1388,19 +1388,19 @@ scopeHsLocaLBinds (HsValBinds _ (ValBinds _ bs sigs))
   = foldr combineScopes NoScope (bsScope ++ sigsScope)
   where
     bsScope :: [Scope]
-    bsScope = map (mkScopeA . getLoc) $ bagToList bs
+    bsScope = map (mkScope . getLoc) $ bagToList bs
     sigsScope :: [Scope]
     sigsScope = map (mkScope . getLocA) sigs
 scopeHsLocaLBinds (HsValBinds _ (XValBindsLR (NValBinds bs sigs)))
   = foldr combineScopes NoScope (bsScope ++ sigsScope)
   where
     bsScope :: [Scope]
-    bsScope = map (mkScopeA . getLoc) $ concatMap (bagToList . snd) bs
+    bsScope = map (mkScope . getLoc) $ concatMap (bagToList . snd) bs
     sigsScope :: [Scope]
     sigsScope = map (mkScope . getLocA) sigs
 
 scopeHsLocaLBinds (HsIPBinds _ (IPBinds _ bs))
-  = foldr combineScopes NoScope (map (mkScopeA . getLoc) bs)
+  = foldr combineScopes NoScope (map (mkScope . getLoc) bs)
 scopeHsLocaLBinds (EmptyLocalBinds _) = NoScope
 
 instance HiePass p => ToHie (RScoped (LocatedA (IPBind (GhcPass p)))) where
@@ -1513,7 +1513,7 @@ instance HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) where
         , toHie c
         ]
       HsCmdLet _ _ binds _ cmd' ->
-        [ toHie $ RS (mkLScopeA cmd') binds
+        [ toHie $ RS (mkScope cmd') binds
         , toHie cmd'
         ]
       HsCmdDo _ (L ispan stmts) ->
@@ -1550,11 +1550,11 @@ instance ToHie (LocatedA (TyClDecl GhcRn)) where
         , toHie defn
         ]
         where
-          quant_scope = mkLScopeA $ fromMaybe (noLocA []) $ dd_ctxt defn
+          quant_scope = mkScope $ fromMaybe (noLocA []) $ dd_ctxt defn
           rhs_scope = sig_sc `combineScopes` con_sc `combineScopes` deriv_sc
-          sig_sc = maybe NoScope mkLScopeA $ dd_kindSig defn
-          con_sc = foldr combineScopes NoScope $ mkLScopeA <$> dd_cons defn
-          deriv_sc = foldr combineScopes NoScope $ mkLScopeA <$> dd_derivs defn
+          sig_sc = maybe NoScope mkScope $ dd_kindSig defn
+          con_sc = foldr combineScopes NoScope $ mkScope <$> dd_cons defn
+          deriv_sc = foldr combineScopes NoScope $ mkScope <$> dd_derivs defn
       ClassDecl { tcdCtxt = context
                 , tcdLName = name
                 , tcdTyVars = vars
@@ -1575,7 +1575,7 @@ instance ToHie (LocatedA (TyClDecl GhcRn)) where
         , toHie deftyps
         ]
         where
-          context_scope = mkLScopeA $ fromMaybe (noLocA []) context
+          context_scope = mkScope $ fromMaybe (noLocA []) context
           rhs_scope = foldl1' combineScopes $ map mkScope
             [ getHasLocList deps, getHasLocList sigs, getHasLocList (bagToList meths), getHasLocList typs, getHasLocList deftyps]
 
@@ -1599,7 +1599,7 @@ instance ToHie (FamilyInfo GhcRn) where
     , toHie $ map go eqns
     ]
     where
-      go (L l ib) = TS (ResolvedScopes [mkScopeA l]) ib
+      go (L l ib) = TS (ResolvedScopes [mkScope l]) ib
   toHie _ = pure []
 
 instance ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) where
@@ -1663,7 +1663,7 @@ instance ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) where
 instance ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) where
   toHie (L span cl) = concatM $ makeNodeA cl span : case cl of
       HsDerivingClause _ strat dct ->
-        [ toHie (RS (mkLScopeA dct) <$> strat)
+        [ toHie (RS (mkScope dct) <$> strat)
         , toHie dct
         ]
 
@@ -1693,7 +1693,7 @@ instance ToHie (LocatedA (ConDecl GhcRn)) where
         [ toHie $ C (Decl ConDec $ getRealSpanA span) <$> names
         , case outer_bndrs of
             HsOuterImplicit{hso_ximplicit = imp_vars} ->
-              bindingsOnly $ map (C $ TyVarBind (mkScopeA outer_bndrs_loc) resScope)
+              bindingsOnly $ map (C $ TyVarBind (mkScope outer_bndrs_loc) resScope)
                              imp_vars
             HsOuterExplicit{hso_bndrs = exp_bndrs} ->
               toHie $ tvScopes resScope NoScope exp_bndrs
@@ -1704,11 +1704,11 @@ instance ToHie (LocatedA (ConDecl GhcRn)) where
         ]
         where
           rhsScope = combineScopes argsScope tyScope
-          ctxScope = maybe NoScope mkLScopeA ctx
+          ctxScope = maybe NoScope mkScope ctx
           argsScope = case args of
             PrefixConGADT xs -> scaled_args_scope xs
-            RecConGADT x _   -> mkLScopeA x
-          tyScope = mkLScopeA typ
+            RecConGADT x _   -> mkScope x
+          tyScope = mkScope typ
           resScope = ResolvedScopes [ctxScope, rhsScope]
       ConDeclH98 { con_name = name, con_ex_tvs = qvars
                  , con_mb_cxt = ctx, con_args = dets
@@ -1721,13 +1721,13 @@ instance ToHie (LocatedA (ConDecl GhcRn)) where
         ]
         where
           rhsScope = combineScopes ctxScope argsScope
-          ctxScope = maybe NoScope mkLScopeA ctx
+          ctxScope = maybe NoScope mkScope ctx
           argsScope = case dets of
             PrefixCon _ xs -> scaled_args_scope xs
             InfixCon a b   -> scaled_args_scope [a, b]
-            RecCon x       -> mkLScopeA x
+            RecCon x       -> mkScope x
     where scaled_args_scope :: [HsScaled GhcRn (LHsType GhcRn)] -> Scope
-          scaled_args_scope = foldr combineScopes NoScope . map (mkLScopeA . hsScaledThing)
+          scaled_args_scope = foldr combineScopes NoScope . map (mkScope . hsScaledThing)
 
 instance ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) where
   toHie (L span decls) = concatM $
@@ -1807,7 +1807,7 @@ instance HiePass p => ToHie (SigContext (LocatedA (Sig (GhcPass p)))) where
 
 instance ToHie (TScoped (LocatedA (HsSigType GhcRn))) where
   toHie (TS tsc (L span t at HsSig{sig_bndrs=bndrs,sig_body=body})) = concatM $ makeNodeA t span :
-      [ toHie (TVS tsc (mkScopeA span) bndrs)
+      [ toHie (TVS tsc (mkScope span) bndrs)
       , toHie body
       ]
 
@@ -2019,7 +2019,7 @@ instance ToHie (LocatedA (InstDecl GhcRn)) where
 
 instance ToHie (LocatedA (ClsInstDecl GhcRn)) where
   toHie (L span decl) = concatM
-    [ toHie $ TS (ResolvedScopes [mkScopeA span]) $ cid_poly_ty decl
+    [ toHie $ TS (ResolvedScopes [mkScope span]) $ cid_poly_ty decl
     , toHie $ fmap (BC InstanceBind ModuleScope) $ cid_binds decl
     , toHie $ map (SC $ SI InstSig $ getRealSpanA span) $ cid_sigs decl
     , concatMapM (locOnly . getLocA) $ cid_tyfam_insts decl
@@ -2030,10 +2030,10 @@ instance ToHie (LocatedA (ClsInstDecl GhcRn)) where
     ]
 
 instance ToHie (LocatedA (DataFamInstDecl GhcRn)) where
-  toHie (L sp (DataFamInstDecl d)) = toHie $ TS (ResolvedScopes [mkScopeA sp]) d
+  toHie (L sp (DataFamInstDecl d)) = toHie $ TS (ResolvedScopes [mkScope sp]) d
 
 instance ToHie (LocatedA (TyFamInstDecl GhcRn)) where
-  toHie (L sp (TyFamInstDecl _ d)) = toHie $ TS (ResolvedScopes [mkScopeA sp]) d
+  toHie (L sp (TyFamInstDecl _ d)) = toHie $ TS (ResolvedScopes [mkScope sp]) d
 
 instance HiePass p => ToHie (Context (FieldOcc (GhcPass p))) where
   toHie (C c (FieldOcc n (L l _))) = case hiePass @p of
@@ -2050,7 +2050,7 @@ instance ToHie (LocatedA (DerivDecl GhcRn)) where
   toHie (L span decl) = concatM $ makeNodeA decl span : case decl of
       DerivDecl _ typ strat overlap ->
         [ toHie $ TS (ResolvedScopes []) typ
-        , toHie $ (RS (mkScopeA span) <$> strat)
+        , toHie $ (RS (mkScope span) <$> strat)
         , toHie overlap
         ]
 
@@ -2132,9 +2132,9 @@ instance ToHie (LocatedA (RuleDecl GhcRn)) where
         , toHie exprB
         ]
     where scope = bndrs_sc `combineScopes` exprA_sc `combineScopes` exprB_sc
-          bndrs_sc = maybe NoScope mkLScopeA (listToMaybe bndrs)
-          exprA_sc = mkLScopeA exprA
-          exprB_sc = mkLScopeA exprB
+          bndrs_sc = maybe NoScope mkScope (listToMaybe bndrs)
+          exprA_sc = mkScope exprA
+          exprB_sc = mkScope exprB
 
 instance ToHie (RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn))) where
   toHie (RS sc (L span bndr)) = concatM $ makeNodeA bndr span : case bndr of


=====================================
compiler/GHC/Iface/Ext/Utils.hs
=====================================
@@ -527,21 +527,10 @@ locOnly (RealSrcSpan span _) = do
   pure [Node e span []]
 locOnly _ = pure []
 
-mkScopeA :: EpAnn ann -> Scope
-mkScopeA l = mkScope (locA l)
-
-mkScope :: SrcSpan -> Scope
-mkScope (RealSrcSpan sp _) = LocalScope sp
-mkScope _ = NoScope
-
-mkLScope :: Located a -> Scope
-mkLScope = mkScope . getLoc
-
-mkLScopeA :: GenLocated (EpAnn a) e -> Scope
-mkLScopeA = mkScope . locA . getLoc
-
-mkLScopeN :: LocatedN a -> Scope
-mkLScopeN = mkScope . getLocA
+mkScope :: (HasLoc a) => a -> Scope
+mkScope a = case getHasLoc a of
+              (RealSrcSpan sp _) -> LocalScope sp
+              _ -> NoScope
 
 combineScopes :: Scope -> Scope -> Scope
 combineScopes ModuleScope _ = ModuleScope



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/af8816740d9b8759be1a22af8adcb5f13edeb61d

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/af8816740d9b8759be1a22af8adcb5f13edeb61d
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20231128/d3cfe91f/attachment-0001.html>


More information about the ghc-commits mailing list