diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2014-02-18 08:37:21 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2014-02-18 08:46:27 +0000 |
commit | 47f473b0f7ddf21b2cde825166d092cb6e72329d (patch) | |
tree | b29a7d14db1e288a611990e562c4bd4cd691d5ac /compiler/deSugar | |
parent | 2931d19e90d2366f2ce308d65a36333336ca6059 (diff) | |
download | haskell-47f473b0f7ddf21b2cde825166d092cb6e72329d.tar.gz |
Use NoGen plan for unboxed-tuple bindings
There was a small mixup here, exposed by Trac #8762.
Now clarified with better function names and comments.
Diffstat (limited to 'compiler/deSugar')
-rw-r--r-- | compiler/deSugar/DsExpr.lhs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/deSugar/DsExpr.lhs b/compiler/deSugar/DsExpr.lhs index 546a198ca8..d1ef24070c 100644 --- a/compiler/deSugar/DsExpr.lhs +++ b/compiler/deSugar/DsExpr.lhs @@ -165,9 +165,9 @@ dsStrictBind bind body = pprPanic "dsLet: unlifted" (ppr bind $$ ppr body) strictMatchOnly :: HsBind Id -> Bool strictMatchOnly (AbsBinds { abs_binds = binds }) = anyBag (strictMatchOnly . unLoc . snd) binds -strictMatchOnly (PatBind { pat_lhs = lpat, pat_rhs_ty = ty }) - = isUnLiftedType ty - || isBangLPat lpat +strictMatchOnly (PatBind { pat_lhs = lpat, pat_rhs_ty = rhs_ty }) + = isUnLiftedType rhs_ty + || isStrictLPat lpat || any (isUnLiftedType . idType) (collectPatBinders lpat) strictMatchOnly (FunBind { fun_id = L _ id }) = isUnLiftedType (idType id) |