diff options
Diffstat (limited to 'compiler/prelude/PrelNames.hs')
-rw-r--r-- | compiler/prelude/PrelNames.hs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/compiler/prelude/PrelNames.hs b/compiler/prelude/PrelNames.hs index cec6837408..3bc29674e9 100644 --- a/compiler/prelude/PrelNames.hs +++ b/compiler/prelude/PrelNames.hs @@ -778,6 +778,7 @@ and it's convenient to write them all down in one place. -} mkSpecialTyConRepName :: FastString -> Name -> Name +-- See Note [Grand plan for Typeable] in TcTypeable mkSpecialTyConRepName fs tc_name = mkExternalName (tyConRepNameUnique (nameUnique tc_name)) tYPEABLE_INTERNAL @@ -785,18 +786,20 @@ mkSpecialTyConRepName fs tc_name wiredInSrcSpan mkPrelTyConRepName :: Name -> Name -mkPrelTyConRepName name -- Prelude tc_name is always External, +-- See Note [Grand plan for Typeable] in TcTypeable +mkPrelTyConRepName tc_name -- Prelude tc_name is always External, -- so nameModule will work - = mkExternalName rep_uniq rep_mod rep_occ (nameSrcSpan name) + = mkExternalName rep_uniq rep_mod rep_occ (nameSrcSpan tc_name) where - name_occ = nameOccName name - name_mod = nameModule name - name_uniq = nameUnique name + name_occ = nameOccName tc_name + name_mod = nameModule tc_name + name_uniq = nameUnique tc_name rep_uniq | isTcOcc name_occ = tyConRepNameUnique name_uniq | otherwise = dataConRepNameUnique name_uniq (rep_mod, rep_occ) = tyConRepModOcc name_mod name_occ tyConRepModOcc :: Module -> OccName -> (Module, OccName) +-- See Note [Grand plan for Typeable] in TcTypeable tyConRepModOcc tc_module tc_occ | tc_module == gHC_TYPES = (tYPEABLE_INTERNAL, mkTyConRepUserOcc tc_occ) |