Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
[ghc-hetmet.git] / compiler / rename / RnExpr.lhs
index 78088d5..490faec 100644 (file)
@@ -605,7 +605,7 @@ rnBracket (DecBrL decls)
   = do { (group, mb_splice) <- findSplice decls
        ; case mb_splice of
            Nothing -> return ()
-           Just (SpliceDecl (L loc _), _)  
+           Just (SpliceDecl (L loc _) _, _)  
               -> setSrcSpan loc $
                  addErr (ptext (sLit "Declaration splices are not permitted inside declaration brackets"))
                -- Why not?  See Section 7.3 of the TH paper.  
@@ -780,6 +780,7 @@ rnStmt ctxt (L loc (GroupStmt stmts _ by using)) thing_inside
 
        ; let all_fvs  = fvs1 `plusFV` fvs2 
              bndr_map = used_bndrs `zip` used_bndrs
+            -- See Note [GroupStmt binder map] in HsExpr
 
        ; traceRn (text "rnStmt: implicitly rebound these used binders:" <+> ppr bndr_map)
        ; return (([L loc (GroupStmt stmts' bndr_map by' using')], thing), all_fvs) }
@@ -885,7 +886,8 @@ rn_rec_stmts_and_then s cont
 
          --    ...bring them and their fixities into scope
        ; let bound_names = collectLStmtsBinders (map fst new_lhs_and_fv)
-       ; bindLocalNamesFV_WithFixities bound_names fix_env $ do
+       ; bindLocalNamesFV bound_names $
+          addLocalFixities fix_env bound_names $ do
 
          -- (C) do the right-hand-sides and thing-inside
        { segs <- rn_rec_stmts bound_names new_lhs_and_fv