X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FcoreSyn%2FCorePrep.lhs;h=298e599ef2a6d1e68c26deec9c1d357733d3970f;hb=3b9d7c8181f6edd130fb93768e4f1e32977a738c;hp=5a4b636896ee5cb501e9f411ebd5c4224258cc01;hpb=93436263afc077d487937c45a12f38ad841dc9f0;p=ghc-hetmet.git diff --git a/ghc/compiler/coreSyn/CorePrep.lhs b/ghc/compiler/coreSyn/CorePrep.lhs index 5a4b636..298e599 100644 --- a/ghc/compiler/coreSyn/CorePrep.lhs +++ b/ghc/compiler/coreSyn/CorePrep.lhs @@ -427,6 +427,12 @@ mkLocalNonRec bndr dem floats rhs -- code compiled without -O. The case in point is data constructor -- wrappers. -- + -- NB2: we have to be careful that the result of etaExpand doesn't + -- invalidate any of the assumptions that CorePrep is attempting + -- to establish. One possible cause is eta expanding inside of + -- an SCC note - we're now careful in etaExpand to make sure the + -- SCC is pushed inside any new lambdas that are generated. + -- getUniquesUs `thenUs` \ us -> let rhs' = etaExpand (exprArity rhs) us rhs bndr_ty