Commit 25a327cf authored by simonpj@microsoft.com's avatar simonpj@microsoft.com
Browse files

Fix a long-standing latent bug (and the build): check res_ty not sig_ty

parent 43213e90
...@@ -108,10 +108,12 @@ tcCheckFIType _ arg_tys res_ty (DNImport spec) = do ...@@ -108,10 +108,12 @@ tcCheckFIType _ arg_tys res_ty (DNImport spec) = do
_ -> return () _ -> return ()
return (DNImport (withDNTypes spec (map toDNType arg_tys) (toDNType res_ty))) return (DNImport (withDNTypes spec (map toDNType arg_tys) (toDNType res_ty)))
tcCheckFIType sig_ty _ _ idecl@(CImport _ _ _ _ (CLabel _)) = do tcCheckFIType sig_ty arg_tys res_ty idecl@(CImport _ _ _ _ (CLabel _))
checkCg checkCOrAsm = ASSERT( null arg_tys )
check (isFFILabelTy sig_ty) (illegalForeignTyErr empty sig_ty) do { checkCg checkCOrAsm
return idecl ; check (isFFILabelTy res_ty) (illegalForeignTyErr empty sig_ty)
; return idecl } -- NB check res_ty not sig_ty!
-- In case sig_ty is (forall a. ForeignPtr a)
tcCheckFIType sig_ty arg_tys res_ty idecl@(CImport cconv _ _ _ CWrapper) = do tcCheckFIType sig_ty arg_tys res_ty idecl@(CImport cconv _ _ _ CWrapper) = do
-- Foreign wrapper (former f.e.d.) -- Foreign wrapper (former f.e.d.)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment