[project @ 1999-03-25 13:13:51 by simonm]
[ghc-hetmet.git] / ghc / compiler / deSugar / Desugar.lhs
index 8e43035..4fc7be4 100644 (file)
@@ -13,12 +13,12 @@ import HsSyn                ( MonoBinds )
 import TcHsSyn         ( TypecheckedMonoBinds, TypecheckedForeignDecl )
 import CoreSyn
 import DsMonad
-import DsBinds         ( dsMonoBinds )
+import DsBinds         ( dsMonoBinds, AutoScc(..) )
 import DsForeign       ( dsForeigns )
 import DsUtils
 import DsExpr          ()      -- Forces DsExpr to be compiled; DsBinds only
                                -- depends on DsExpr.hi-boot.
-import Name            ( Module, moduleString )
+import Module          ( Module, moduleString )
 import Bag             ( isEmptyBag, unionBags )
 import CmdLineOpts     ( opt_SccGroup, opt_SccProfilingOn )
 import CoreLint                ( beginPass, endPass )
@@ -42,11 +42,13 @@ deSugar us global_val_env mod_name all_binds fo_decls = do
        beginPass "Desugar"
        -- Do desugaring
        let (core_prs, ds_warns1) = initDs us1 global_val_env module_and_group 
-                                           (dsMonoBinds opt_SccProfilingOn all_binds [])
+                                           (dsMonoBinds auto_scc all_binds [])
+           auto_scc | opt_SccProfilingOn = TopLevel
+                    | otherwise          = NoSccs
             ds_binds' = [Rec core_prs]
 
            ((fi_binds, fe_binds, h_code, c_code), ds_warns2) = 
-                   initDs us3 global_val_env module_and_group (dsForeigns fo_decls)
+                   initDs us3 global_val_env module_and_group (dsForeigns mod_name fo_decls)
 
            ds_binds  = fi_binds ++ ds_binds' ++ fe_binds