X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Frename%2FRnExpr.lhs;fp=compiler%2Frename%2FRnExpr.lhs;h=46eef670f26c982cf444eb421bbf8a28ee323d78;hp=b3458dbc80f0d271028f1ac9f98bc8a35f488ffe;hb=d4780d48bb8a665a2cdaa5e2c6e4bfbc87298fd0;hpb=831ea49474bf28f1d33428d09bc8912827be265e diff --git a/compiler/rename/RnExpr.lhs b/compiler/rename/RnExpr.lhs index b3458db..46eef67 100644 --- a/compiler/rename/RnExpr.lhs +++ b/compiler/rename/RnExpr.lhs @@ -841,9 +841,24 @@ rnParallelStmts ctxt segs thing_inside lookupStmtName :: HsStmtContext Name -> Name -> RnM (HsExpr Name, FreeVars) -- Like lookupSyntaxName, but ListComp/PArrComp are never rebindable -lookupStmtName ListComp n = return (HsVar n, emptyFVs) -lookupStmtName PArrComp n = return (HsVar n, emptyFVs) -lookupStmtName _ n = lookupSyntaxName n +-- Neither is ArrowExpr, which has its own desugarer in DsArrows +lookupStmtName ctxt n + = case ctxt of + ListComp -> not_rebindable + PArrComp -> not_rebindable + ArrowExpr -> not_rebindable + PatGuard {} -> not_rebindable + + DoExpr -> rebindable + MDoExpr -> rebindable + MonadComp -> rebindable + GhciStmt -> rebindable -- I suppose? + + ParStmtCtxt c -> lookupStmtName c n -- Look inside to + TransStmtCtxt c -> lookupStmtName c n -- the parent context + where + rebindable = lookupSyntaxName n + not_rebindable = return (HsVar n, emptyFVs) \end{code} Note [Renaming parallel Stmts]