summaryrefslogtreecommitdiff
path: root/compiler/GHC/Iface/Ext/Ast.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Iface/Ext/Ast.hs')
-rw-r--r--compiler/GHC/Iface/Ext/Ast.hs15
1 files changed, 6 insertions, 9 deletions
diff --git a/compiler/GHC/Iface/Ext/Ast.hs b/compiler/GHC/Iface/Ext/Ast.hs
index cc694f249f..7b4e8bc20e 100644
--- a/compiler/GHC/Iface/Ext/Ast.hs
+++ b/compiler/GHC/Iface/Ext/Ast.hs
@@ -1278,7 +1278,6 @@ instance HiePass p => ToHie (RScoped (HsLocalBinds (GhcPass p))) where
valBinds
]
-
scopeHsLocaLBinds :: HsLocalBinds (GhcPass p) -> Scope
scopeHsLocaLBinds (HsValBinds _ (ValBinds _ bs sigs))
= foldr combineScopes NoScope (bsScope ++ sigsScope)
@@ -1299,15 +1298,13 @@ scopeHsLocaLBinds (HsIPBinds _ (IPBinds _ bs))
= foldr combineScopes NoScope (map (mkScopeA . getLoc) bs)
scopeHsLocaLBinds (EmptyLocalBinds _) = NoScope
-
instance HiePass p => ToHie (RScoped (LocatedA (IPBind (GhcPass p)))) where
- toHie (RS scope (L sp bind)) = concatM $ makeNodeA bind sp : case bind of
- IPBind _ (Left _) expr -> [toHie expr]
- IPBind _ (Right v) expr ->
- [ toHie $ C (EvidenceVarBind EvImplicitBind scope (getRealSpanA sp))
- $ L sp v
- , toHie expr
- ]
+ toHie (RS scope (L sp bind@(IPBind v _ expr))) = concatM $ makeNodeA bind sp : case hiePass @p of
+ HieRn -> [toHie expr]
+ HieTc -> [ toHie $ C (EvidenceVarBind EvImplicitBind scope (getRealSpanA sp))
+ $ L sp v
+ , toHie expr
+ ]
instance HiePass p => ToHie (RScoped (HsValBindsLR (GhcPass p) (GhcPass p))) where
toHie (RS sc v) = concatM $ case v of