X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FdeSugar%2FDesugar.lhs;h=1415b55c944e2999f2a176b475de7d1d662b6d40;hb=6a05ec5ef5373f61b7f9f5bdc344483417fa801b;hp=4ca1ddd70c4fcc0dc590d892985bcaa51230ed47;hpb=e5ca7e6e5137a2e6081717e5e90ca52a30840f68;p=ghc-hetmet.git diff --git a/compiler/deSugar/Desugar.lhs b/compiler/deSugar/Desugar.lhs index 4ca1ddd..1415b55 100644 --- a/compiler/deSugar/Desugar.lhs +++ b/compiler/deSugar/Desugar.lhs @@ -6,6 +6,13 @@ The Desugarer: turning HsSyn into Core. \begin{code} +{-# OPTIONS -w #-} +-- The above warning supression flag is a temporary kludge. +-- While working on this module you are encouraged to remove it and fix +-- any warnings in the module. See +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings +-- for details + module Desugar ( deSugar, deSugarExpr ) where #include "HsVersions.h" @@ -71,13 +78,15 @@ deSugar hsc_env tcg_keep = keep_var, tcg_rdr_env = rdr_env, tcg_fix_env = fix_env, + tcg_inst_env = inst_env, tcg_fam_inst_env = fam_inst_env, tcg_deprecs = deprecs, tcg_binds = binds, tcg_fords = fords, tcg_rules = rules, tcg_insts = insts, - tcg_fam_insts = fam_insts }) + tcg_fam_insts = fam_insts, + tcg_hpc = other_hpc_info }) = do { let dflags = hsc_dflags hsc_env ; showPass dflags "Desugar" @@ -86,12 +95,15 @@ deSugar hsc_env ; let export_set = availsToNameSet exports ; let auto_scc = mkAutoScc mod export_set ; let target = hscTarget dflags + ; let hpcInfo = emptyHpcInfo other_hpc_info ; mb_res <- case target of - HscNothing -> return (Just ([], [], NoStubs, noHpcInfo, emptyModBreaks)) + HscNothing -> return (Just ([], [], NoStubs, hpcInfo, emptyModBreaks)) _ -> do (binds_cvr,ds_hpc_info, modBreaks) - <- if opt_Hpc || target == HscInterpreted - then addCoverageTicksToBinds dflags mod mod_loc binds - else return (binds, noHpcInfo, emptyModBreaks) + <- if (opt_Hpc + || target == HscInterpreted) + && (not (isHsBoot hsc_src)) + then addCoverageTicksToBinds dflags mod mod_loc (typeEnvTyCons type_env) binds + else return (binds, hpcInfo, emptyModBreaks) initDs hsc_env mod rdr_env type_env $ do { core_prs <- dsTopLHsBinds auto_scc binds_cvr ; (ds_fords, foreign_prs) <- dsForeigns fords @@ -161,19 +173,22 @@ deSugar hsc_env mg_exports = exports, mg_deps = deps, mg_usages = usages, - mg_dir_imps = [m | (m,_,_) <- moduleEnvElts dir_imp_mods], + mg_dir_imps = [m | (m, _) <- moduleEnvElts dir_imp_mods], mg_rdr_env = rdr_env, mg_fix_env = fix_env, mg_deprecs = deprecs, mg_types = type_env, mg_insts = insts, mg_fam_insts = fam_insts, + mg_inst_env = inst_env, mg_fam_inst_env = fam_inst_env, mg_rules = ds_rules, mg_binds = ds_binds, mg_foreign = ds_fords, mg_hpc_info = ds_hpc_info, - mg_modBreaks = modBreaks } + mg_modBreaks = modBreaks, + mg_vect_info = noVectInfo + } ; return (Just mod_guts) }}}