• Simon Peyton Jones's avatar
    Fix utterly bogus TagToEnum rule in caseRules · 4aa98f4a
    Simon Peyton Jones authored
    In prelRules we had:
      tx_con_tte :: DynFlags -> AltCon -> AltCon
      tx_con_tte _      DEFAULT      = DEFAULT
      tx_con_tte dflags (DataAlt dc)
        | tag == 0  = DEFAULT   -- See Note [caseRules for tagToEnum]
        | otherwise = LitAlt (mkMachInt dflags (toInteger tag))
    The tag==0 case is totally wrong, and led directly to Trac #14768.
    See "Beware" in Note [caseRules for tagToEnum] (in the patch).
    Easily fixed, though!
SimplUtils.hs 90.3 KB