summaryrefslogtreecommitdiff
path: root/utils/check-exact/ExactPrint.hs
diff options
context:
space:
mode:
authorromes <rodrigo.m.mesquita@gmail.com>2022-06-14 00:56:14 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-07-06 13:50:27 -0400
commitfd379d1b8e709f4eaa20a969bf9fffd40b8a4433 (patch)
treea168d8d325b6d7cc2170676a8822e8b38152a85f /utils/check-exact/ExactPrint.hs
parent371c5ecf6898294f4e5bf91784dc794e7e16b7cc (diff)
downloadhaskell-fd379d1b8e709f4eaa20a969bf9fffd40b8a4433.tar.gz
Remove many GHC dependencies from L.H.S
Continue to prune the `Language.Haskell.Syntax.*` modules out of GHC imports according to the plan in the linked issue. Moves more GHC-specific declarations to `GHC.*` and brings more required GHC-independent declarations to `Language.Haskell.Syntax.*` (extending e.g. `Language.Haskell.Syntax.Basic`). Progress towards #21592 Bump haddock submodule for !8308 ------------------------- Metric Decrease: hard_hole_fits -------------------------
Diffstat (limited to 'utils/check-exact/ExactPrint.hs')
-rw-r--r--utils/check-exact/ExactPrint.hs52
1 files changed, 23 insertions, 29 deletions
diff --git a/utils/check-exact/ExactPrint.hs b/utils/check-exact/ExactPrint.hs
index 1255d492e0..ef2e98841b 100644
--- a/utils/check-exact/ExactPrint.hs
+++ b/utils/check-exact/ExactPrint.hs
@@ -944,18 +944,18 @@ instance ExactPrint (ForeignDecl GhcPs) where
-- ---------------------------------------------------------------------
-instance ExactPrint ForeignImport where
+instance ExactPrint (ForeignImport GhcPs) where
getAnnotationEntry = const NoEntryVal
- exact (CImport cconv safety@(L ll _) _mh _imp (L ls src)) = do
+ exact (CImport (L ls src) cconv safety@(L ll _) _mh _imp) = do
markAnnotated cconv
unless (ll == noSrcSpan) $ markAnnotated safety
unless (ls == noSrcSpan) $ markExternalSourceText ls src ""
-- ---------------------------------------------------------------------
-instance ExactPrint ForeignExport where
+instance ExactPrint (ForeignExport GhcPs) where
getAnnotationEntry = const NoEntryVal
- exact (CExport spec (L ls src)) = do
+ exact (CExport (L ls src) spec) = do
debugM $ "CExport starting"
markAnnotated spec
unless (ls == noSrcSpan) $ markExternalSourceText ls src ""
@@ -983,8 +983,8 @@ instance ExactPrint CCallConv where
-- ---------------------------------------------------------------------
instance ExactPrint (WarnDecls GhcPs) where
- getAnnotationEntry (Warnings an _ _) = fromAnn an
- exact (Warnings an src warns) = do
+ getAnnotationEntry (Warnings (an,_) _) = fromAnn an
+ exact (Warnings (an,src) warns) = do
markAnnOpen an src "{-# WARNING" -- Note: might be {-# DEPRECATED
markAnnotated warns
markLocatedAALS an id AnnClose (Just "#-}")
@@ -1024,8 +1024,8 @@ instance ExactPrint FastString where
-- ---------------------------------------------------------------------
instance ExactPrint (RuleDecls GhcPs) where
- getAnnotationEntry (HsRules an _ _) = fromAnn an
- exact (HsRules an src rules) = do
+ getAnnotationEntry (HsRules (an,_) _) = fromAnn an
+ exact (HsRules (an, src) rules) = do
case src of
NoSourceText -> markLocatedAALS an id AnnOpen (Just "{-# RULES")
SourceText srcTxt -> markLocatedAALS an id AnnOpen (Just srcTxt)
@@ -1036,8 +1036,8 @@ instance ExactPrint (RuleDecls GhcPs) where
-- ---------------------------------------------------------------------
instance ExactPrint (RuleDecl GhcPs) where
- getAnnotationEntry (HsRule {rd_ext = an}) = fromAnn an
- exact (HsRule an ln act mtybndrs termbndrs lhs rhs) = do
+ getAnnotationEntry (HsRule {rd_ext = (an,_)}) = fromAnn an
+ exact (HsRule (an,_) ln act mtybndrs termbndrs lhs rhs) = do
debugM "HsRule entered"
markAnnotated ln
debugM "HsRule after ln"
@@ -1309,9 +1309,9 @@ instance ExactPrint (HsBind GhcPs) where
getAnnotationEntry VarBind{} = NoEntryVal
getAnnotationEntry PatSynBind{} = NoEntryVal
- exact (FunBind _ _ matches _) = do
+ exact (FunBind _ _ matches) = do
markAnnotated matches
- exact (PatBind _ pat grhss _) = do
+ exact (PatBind _ pat grhss) = do
markAnnotated pat
markAnnotated grhss
exact (PatSynBind _ bind) = markAnnotated bind
@@ -1593,14 +1593,13 @@ instance ExactPrint (Sig GhcPs) where
getAnnotationEntry (TypeSig a _ _) = fromAnn a
getAnnotationEntry (PatSynSig a _ _) = fromAnn a
getAnnotationEntry (ClassOpSig a _ _ _) = fromAnn a
- getAnnotationEntry (IdSig {}) = NoEntryVal
getAnnotationEntry (FixSig a _) = fromAnn a
getAnnotationEntry (InlineSig a _ _) = fromAnn a
getAnnotationEntry (SpecSig a _ _ _) = fromAnn a
- getAnnotationEntry (SpecInstSig a _ _) = fromAnn a
- getAnnotationEntry (MinimalSig a _ _) = fromAnn a
- getAnnotationEntry (SCCFunSig a _ _ _) = fromAnn a
- getAnnotationEntry (CompleteMatchSig a _ _ _) = fromAnn a
+ getAnnotationEntry (SpecInstSig (a, _) _) = fromAnn a
+ getAnnotationEntry (MinimalSig (a, _) _) = fromAnn a
+ getAnnotationEntry (SCCFunSig (a, _) _ _) = fromAnn a
+ getAnnotationEntry (CompleteMatchSig (a, _) _ _) = fromAnn a
-- instance Annotate (Sig GhcPs) where
@@ -1616,9 +1615,6 @@ instance ExactPrint (Sig GhcPs) where
| is_deflt = markLocatedAAL an asRest AnnDefault >> exactVarSig an vars ty
| otherwise = exactVarSig an vars ty
--- markAST _ (IdSig {}) =
--- traceM "warning: Introduced after renaming"
-
exact (FixSig an (FixitySig _ names (Fixity src v fdir))) = do
let fixstr = case fdir of
InfixL -> "infixl"
@@ -1650,7 +1646,7 @@ instance ExactPrint (Sig GhcPs) where
markAnnotated typs
markLocatedAALS an id AnnClose (Just "#-}")
- exact (SpecInstSig an src typ) = do
+ exact (SpecInstSig (an, src) typ) = do
markAnnOpen an src "{-# SPECIALISE"
markEpAnn an AnnInstance
markAnnotated typ
@@ -1663,7 +1659,7 @@ instance ExactPrint (Sig GhcPs) where
-- markWithString AnnClose "#-}" -- '#-}'
-- markTrailingSemi
- exact (MinimalSig an src formula) = do
+ exact (MinimalSig (an, src) formula) = do
markAnnOpen an src "{-# MINIMAL"
markAnnotated formula
markLocatedAALS an id AnnClose (Just "#-}")
@@ -1674,13 +1670,13 @@ instance ExactPrint (Sig GhcPs) where
-- markWithString AnnClose "#-}"
-- markTrailingSemi
- exact (SCCFunSig an src ln ml) = do
+ exact (SCCFunSig (an, src) ln ml) = do
markAnnOpen an src "{-# SCC"
markAnnotated ln
markAnnotated ml
markLocatedAALS an id AnnClose (Just "#-}")
- exact (CompleteMatchSig an src cs mty) = do
+ exact (CompleteMatchSig (an, src) cs mty) = do
markAnnOpen an src "{-# COMPLETE"
markAnnotated cs
case mty of
@@ -1690,8 +1686,6 @@ instance ExactPrint (Sig GhcPs) where
markAnnotated ty
markLocatedAALS an id AnnClose (Just "#-}")
- exact x = error $ "exact Sig for:" ++ showAst x
-
-- ---------------------------------------------------------------------
exactVarSig :: (ExactPrint a) => EpAnn AnnSig -> [LocatedN RdrName] -> a -> EPP ()
@@ -1746,9 +1740,9 @@ instance ExactPrint (DefaultDecl GhcPs) where
-- ---------------------------------------------------------------------
instance ExactPrint (AnnDecl GhcPs) where
- getAnnotationEntry (HsAnnotation an _ _ _) = fromAnn an
+ getAnnotationEntry (HsAnnotation (an, _) _ _) = fromAnn an
- exact (HsAnnotation an src prov e) = do
+ exact (HsAnnotation (an, src) prov e) = do
markAnnOpenP an src "{-# ANN"
case prov of
(ValueAnnProvenance n) -> markAnnotated n
@@ -2126,7 +2120,7 @@ exactMdo an (Just module_name) kw = markLocatedAALS an al_rest kw (Just n)
instance ExactPrint (HsPragE GhcPs) where
getAnnotationEntry HsPragSCC{} = NoEntryVal
- exact (HsPragSCC an st sl) = do
+ exact (HsPragSCC (an, st) sl) = do
markAnnOpenP an st "{-# SCC"
let txt = sourceTextToString (sl_st sl) (unpackFS $ sl_fs sl)
markLocatedAALS an apr_rest AnnVal (Just txt) -- optional