diff options
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rename/RnExpr.hs | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rename/RnExpr.hs b/compiler/rename/RnExpr.hs index 937ffaf248..b9e097c4d8 100644 --- a/compiler/rename/RnExpr.hs +++ b/compiler/rename/RnExpr.hs @@ -26,6 +26,7 @@ import GhcPrelude  import RnBinds   ( rnLocalBindsAndThen, rnLocalValBindsLHS, rnLocalValBindsRHS,                     rnMatchGroup, rnGRHS, makeMiniFixityEnv)  import HsSyn +import TcEnv            ( isBrackStage )  import TcRnMonad  import Module           ( getModule )  import RnEnv @@ -731,7 +732,10 @@ postProcessStmtsForApplicativeDo ctxt stmts           ado_is_on <- xoptM LangExt.ApplicativeDo         ; let is_do_expr | DoExpr <- ctxt = True                          | otherwise = False -       ; if ado_is_on && is_do_expr +       -- don't apply the transformation inside TH brackets, because +       -- DsMeta does not handle ApplicativeDo. +       ; in_th_bracket <- isBrackStage <$> getStage +       ; if ado_is_on && is_do_expr && not in_th_bracket              then do { traceRn "ppsfa" (ppr stmts)                      ; rearrangeForApplicativeDo ctxt stmts }              else noPostProcessStmts ctxt stmts }  | 
