Remove the "Ghastly special case" from dataTcOccs
authorMax Bolingbroke <batterseapower@hotmail.com>
Fri, 2 Sep 2011 18:23:56 +0000 (19:23 +0100)
committerMax Bolingbroke <batterseapower@hotmail.com>
Tue, 6 Sep 2011 16:21:09 +0000 (17:21 +0100)
This special case was introduced in 228c4743 to
'Fix problem with :i for (:)' but the associated Note
doesn't explain why (:) deserves this treatment but not
e.g. Left and Right.

Removing the special case does not break anything
(including :i (:)) so I guess this is no longer necessary.

Conflicts:

compiler/rename/RnEnv.lhs

compiler/rename/RnEnv.lhs

index cf37499..8faf6e3 100644 (file)
@@ -50,9 +50,7 @@ import NameEnv
 import Module           ( ModuleName, moduleName )
 import UniqFM
 import DataCon         ( dataConFieldLabels )
-import PrelNames        ( mkUnboundName, rOOT_MAIN, consDataConKey, forall_tv_RDR )
-import Unique
-import BasicTypes
+import PrelNames        ( mkUnboundName, rOOT_MAIN, forall_tv_RDR )
 import ErrUtils                ( Message )
 import SrcLoc
 import Outputable
@@ -675,21 +673,11 @@ dataTcOccs :: RdrName -> [RdrName]
 -- constructor.  This is useful when we aren't sure which we are
 -- looking at.
 dataTcOccs rdr_name
-  | Just n <- isExact_maybe rdr_name           -- Ghastly special case
-  , n `hasKey` consDataConKey = [rdr_name]     -- see note below
   | isDataOcc occ            = [rdr_name, rdr_name_tc]
   | otherwise                = [rdr_name]
   where    
     occ        = rdrNameOcc rdr_name
     rdr_name_tc = setRdrNameSpace rdr_name tcName
-
--- If the user typed "[]" or "(,,)", we'll generate an Exact RdrName,
--- and setRdrNameSpace generates an Orig, which is fine
--- But it's not fine for (:), because there *is* no corresponding type
--- constructor.  If we generate an Orig tycon for GHC.Base.(:), it'll
--- appear to be in scope (because Orig's simply allocate a new name-cache
--- entry) and then we get an error when we use dataTcOccs in 
--- TcRnDriver.tcRnGetInfo.  Large sigh.
 \end{code}