Revert "Do not init record accessors as exported"
authorBen Gamari <ben@smart-cactus.org>
Sat, 17 Dec 2016 16:53:59 +0000 (11:53 -0500)
committerBen Gamari <ben@smart-cactus.org>
Sat, 17 Dec 2016 22:35:24 +0000 (17:35 -0500)
This reverts commit 3a00ff92a3ee66c096b85b180d247d1a471a6b6e due
to #12993

compiler/basicTypes/Id.hs
compiler/deSugar/Desugar.hs
compiler/typecheck/TcTyDecls.hs
testsuite/tests/th/all.T

index b2be2c0..1b84acd 100644 (file)
@@ -33,7 +33,6 @@ module Id (
         mkLocalId, mkLocalCoVar, mkLocalIdOrCoVar,
         mkLocalIdOrCoVarWithInfo,
         mkLocalIdWithInfo, mkExportedLocalId, mkExportedVanillaId,
-        mkNonExportedLocalId,
         mkSysLocal, mkSysLocalM, mkSysLocalOrCoVar, mkSysLocalOrCoVarM,
         mkUserLocal, mkUserLocalOrCoVar,
         mkTemplateLocals, mkTemplateLocalsNum, mkTemplateLocal,
@@ -286,12 +285,6 @@ mkExportedLocalId :: IdDetails -> Name -> Type -> Id
 mkExportedLocalId details name ty = Var.mkExportedLocalVar details name ty vanillaIdInfo
         -- Note [Free type variables]
 
--- | Create a local 'Id' that is marked as not-exported.
--- These may be removed as dead code.
-mkNonExportedLocalId :: IdDetails -> Name -> Type -> Id
-mkNonExportedLocalId details name ty =
-  Var.mkLocalVar details name ty vanillaIdInfo
-
 mkExportedVanillaId :: Name -> Type -> Id
 mkExportedVanillaId name ty = Var.mkExportedLocalVar VanillaId name ty vanillaIdInfo
         -- Note [Free type variables]
index e73f12f..1e117b3 100644 (file)
@@ -304,10 +304,7 @@ deSugar hsc_env
                      (text "Desugar"<+>brackets (ppr mod))
                      (const ()) $
      do { -- Desugar the program
-        ; let export_set =
-                -- Used to be 'availsToNameSet', but we now export selectors
-                -- only when necessary. See #12125.
-                availsToNameSetWithSelectors exports
+        ; let export_set = availsToNameSet exports
               target     = hscTarget dflags
               hpcInfo    = emptyHpcInfo other_hpc_info
 
index e8046c7..ae9f16d 100644 (file)
@@ -806,12 +806,7 @@ mkOneRecordSelector all_cons idDetails fl
     lbl      = flLabel fl
     sel_name = flSelector fl
 
-    sel_id =
-      -- Do not mark record selectors as exported to avoid keeping these Ids
-      -- alive unnecessarily. See #12125. Selectors are now marked as exported
-      -- when necessary by desugarer ('Desugar.addExportFlagsAndRules', also see
-      -- uses of 'availsToNameSetWithSelectors' in 'Desugar.hs').
-      mkNonExportedLocalId rec_details sel_name sel_ty
+    sel_id = mkExportedLocalId rec_details sel_name sel_ty
     rec_details = RecSelId { sel_tycon = idDetails, sel_naughty = is_naughty }
 
     -- Find a representative constructor, con1
index bb11528..ce4c5f5 100644 (file)
@@ -445,5 +445,4 @@ test('T12788', extra_clean(['T12788_Lib.hi', 'T12788_Lib.o']),
                multimod_compile_fail,
                ['T12788.hs', '-v0 ' + config.ghc_th_way_flags])
 test('T12977', normal, compile, ['-v0'])
-test('T12993', expect_broken(12993), multimod_compile,
-     ['T12993.hs', '-v0'])
\ No newline at end of file
+test('T12993', normal, multimod_compile, ['T12993.hs', '-v0'])
\ No newline at end of file