Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
[ghc-hetmet.git] / compiler / typecheck / TcRnDriver.lhs
index 42e98b2..262bd73 100644 (file)
@@ -59,7 +59,7 @@ import Id
 import VarEnv
 import Var
 import Module
-import LazyUniqFM
+import UniqFM
 import Name
 import NameEnv
 import NameSet
@@ -433,7 +433,7 @@ tc_rn_src_decls boot_details ds
        failWithTc (text "Can't do a top-level splice; need a bootstrapped compiler")
 #else
        -- If there's a splice, we must carry on
-          Just (SpliceDecl splice_expr, rest_ds) -> do {
+          Just (SpliceDecl splice_expr _, rest_ds) -> do {
 
        -- Rename the splice expression, and get its supporting decls
        (rn_splice_expr, splice_fvs) <- checkNoErrs (rnLExpr splice_expr) ;
@@ -477,8 +477,8 @@ tcRnHsBootDecls decls
 
                -- Check for illegal declarations
        ; case group_tail of
-            Just (SpliceDecl d, _) -> badBootDecl "splice" d
-            Nothing                -> return ()
+            Just (SpliceDecl d _, _) -> badBootDecl "splice" d
+            Nothing                  -> return ()
        ; mapM_ (badBootDecl "foreign") for_decls
        ; mapM_ (badBootDecl "default") def_decls
        ; mapM_ (badBootDecl "rule")    rule_decls
@@ -1198,7 +1198,7 @@ mkPlan (L loc (ExprStmt expr _ _))        -- An expression typed at the prompt
          ]}
 
 mkPlan stmt@(L loc (BindStmt {}))
-  | [L _ v] <- collectLStmtBinders stmt                -- One binder, for a bind stmt 
+  | [v] <- collectLStmtBinders stmt            -- One binder, for a bind stmt 
   = do { let print_v  = L loc $ ExprStmt (nlHsApp (nlHsVar printName) (nlHsVar v))
                                           (HsVar thenIOName) placeHolderType
 
@@ -1229,7 +1229,7 @@ tcGhciStmts stmts
            io_ret_ty = mkTyConApp ioTyCon [ret_ty] ;
            tc_io_stmts stmts = tcStmts GhciStmt tcDoStmt stmts io_ret_ty ;
 
-           names = map unLoc (collectLStmtsBinders stmts) ;
+           names = collectLStmtsBinders stmts ;
 
                -- mk_return builds the expression
                --      returnIO @ [()] [coerce () x, ..,  coerce () z]