Commit d0b1c1cd authored by simonmar's avatar simonmar

[project @ 2003-05-22 10:53:53 by simonmar]

Fix obscure bug in GHCi: when generating code for tag2enum#, we were
wrongly using the source name for the DataCons rather than the worker
name, which lead to spurious link errors.

This fixes galois_raytrace(ghci).
parent 447c163d
......@@ -510,11 +510,14 @@ schemeT d s p app
-- Detect and extract relevant info for the tagToEnum kludge.
= let extract_constr_Names ty
= case splitTyConApp_maybe (repType ty) of
(Just (tyc, [])) | isDataTyCon tyc
-> map getName (tyConDataCons tyc)
other -> panic "maybe_is_tagToEnum_call.extract_constr_Ids"
| Just (tyc, []) <- splitTyConApp_maybe (repType ty),
isDataTyCon tyc
= map (getName . dataConWorkId) (tyConDataCons tyc)
-- NOTE: use the worker name, not the source name of
-- the DataCon. See DataCon.lhs for details.
| otherwise
= panic "maybe_is_tagToEnum_call.extract_constr_Ids"
case app of
(AnnApp (_, AnnApp (_, AnnVar v) (_, AnnType t)) arg)
-> case isPrimOpId_maybe v of
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment