...
 
Commits (2)
......@@ -1250,13 +1250,13 @@ data OkToSpec
mkFloat :: Demand -> Bool -> Id -> CpeRhs -> FloatingBind
mkFloat dmd is_unlifted bndr rhs
| is_unlifted = ASSERT2( exprOkForSpeculation rhs, ppr rhs )
FloatCase rhs bndr DEFAULT [] True
| is_strict
, not is_hnf = FloatCase rhs bndr DEFAULT [] (exprOkForSpeculation rhs)
-- Don't make a case for a HNF binding, even if it's strict
-- Otherwise we get case (\x -> e) of ...!
| is_unlifted = ASSERT2( exprOkForSpeculation rhs, ppr rhs )
FloatCase rhs bndr DEFAULT [] True
| is_hnf = FloatLet (NonRec bndr rhs)
| otherwise = FloatLet (NonRec (setIdDemandInfo bndr dmd) rhs)
-- See Note [Pin demand info on floats]
......
......@@ -54,7 +54,7 @@ test('break001', extra_files(['../Test2.hs']), ghci_script, ['break001.script'])
test('break002', extra_files(['../Test2.hs']), ghci_script, ['break002.script'])
test('break003', extra_files(['../Test3.hs']), ghci_script, ['break003.script'])
test('break005', extra_files(['../QSort.hs']), ghci_script, ['break005.script'])
test('break006', extra_files(['../Test3.hs']), ghci_script, ['break006.script'])
test('break006', [expect_broken(17833), extra_files(['../Test3.hs'])], ghci_script, ['break006.script'])
test('break007', extra_files(['Break007.hs']), ghci_script, ['break007.script'])
test('break008', extra_files(['../Test3.hs']), ghci_script, ['break008.script'])
test('break009', [extra_files(['../Test6.hs']),
......