Fix exactprinting fallback for inline splice

ghc92
Lennart Spitzner 2023-05-30 10:44:30 +02:00
parent 4ed3a2f53d
commit 49a2529a5b
1 changed files with 16 additions and 20 deletions

View File

@ -89,31 +89,27 @@ briDocByExactInlineOnly
) )
=> String => String
-> GHC.XRec GhcPs a -> GHC.XRec GhcPs a
-> ToBriDocM BriDocNumbered -> ToBriDocM (BriDocNumbered)
briDocByExactInlineOnly infoStr ast = do briDocByExactInlineOnly infoStr ast = do
traceIfDumpConf traceIfDumpConf "ast"
"ast" _dconf_dump_ast_unknown
_dconf_dump_ast_unknown (printTreeWithCustom 160 customLayouterF ast)
(printTreeWithCustom 160 customLayouterF ast) let exactPrinted =
let exactPrinted = Text.pack $ ExactPrint.exactPrint ast dropWhile Text.null $ Text.lines $ Text.pack $ ExactPrint.exactPrint ast
fallbackMode <- fallbackMode <-
mAsk <&> _conf_errorHandling .> _econf_ExactPrintFallback .> confUnpack mAsk <&> _conf_errorHandling .> _econf_ExactPrintFallback .> confUnpack
let let exactPrintNode t = allocateNode $ BDExternal False t
exactPrintNode t = let errorAction = do
allocateNode $ BDExternal mTell [ErrorUnknownNode infoStr ast]
-- (ExactPrint.Types.mkAnnKey ast) docLit
-- (foldedAnnKeys ast) $ Text.pack "{- BRITTANY ERROR UNHANDLED SYNTACTICAL CONSTRUCT -}"
False t
let
errorAction = do
mTell [ErrorUnknownNode infoStr ast]
docLit $ Text.pack "{- BRITTANY ERROR UNHANDLED SYNTACTICAL CONSTRUCT -}"
mModify (+ connectedCommentCount ast) mModify (+ connectedCommentCount ast)
case (fallbackMode, Text.lines exactPrinted) of case (fallbackMode, exactPrinted) of
(ExactPrintFallbackModeNever, _) -> errorAction (ExactPrintFallbackModeNever, _ ) -> errorAction
(_, [t]) -> exactPrintNode (_ , [t]) -> exactPrintNode
(Text.dropWhile Char.isSpace . Text.dropWhileEnd Char.isSpace $ t) (Text.dropWhile Char.isSpace . Text.dropWhileEnd Char.isSpace $ t)
(ExactPrintFallbackModeRisky, _) -> exactPrintNode exactPrinted (ExactPrintFallbackModeRisky, _) -> exactPrintNode
(Text.unlines exactPrinted)
_ -> errorAction _ -> errorAction
rdrNameToText :: RdrName -> Text rdrNameToText :: RdrName -> Text