X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FdeSugar%2FDsCCall.lhs;h=f2fdc288f597efc7e1cfa859817207b4ece4caf0;hb=f5fbd41ca7f30e0f8db3f7b280a044d5af138428;hp=01866711b8634229890060cf0414620dfee37625;hpb=76c6edcbde24c92a09642469d2bbe617278c391f;p=ghc-hetmet.git diff --git a/ghc/compiler/deSugar/DsCCall.lhs b/ghc/compiler/deSugar/DsCCall.lhs index 0186671..f2fdc28 100644 --- a/ghc/compiler/deSugar/DsCCall.lhs +++ b/ghc/compiler/deSugar/DsCCall.lhs @@ -172,7 +172,7 @@ unboxArg arg [(DEFAULT,[],body)]) -- Data types with a single constructor, which has a single, primitive-typed arg - -- This deals with Int, Float etc + -- This deals with Int, Float etc; also Ptr, ForeignPtr | is_product_type && data_con_arity == 1 = ASSERT(isUnLiftedType data_con_arg_ty1 ) -- Typechecker ensures this newSysLocalDs arg_ty `thenDs` \ case_bndr -> @@ -398,6 +398,7 @@ resultWrapper result_ty returnDs (maybe_ty, \e -> Lam tyvar (wrapper e)) -- Data types with a single constructor, which has a single arg + -- This includes types like Ptr and ForeignPtr | Just (tycon, tycon_arg_tys, data_con, data_con_arg_tys) <- splitProductType_maybe result_ty, dataConSourceArity data_con == 1 = let