summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/TH_foreignCallingConventions.stderr
blob: df093106528b837147eb9edbd991d67eece97819 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
foreign import ccall interruptible "&" foo :: GHC.Ptr.Ptr ()
foreign import prim safe "bar" bar :: GHC.Prim.Int# ->
                                      GHC.Prim.Int#
foreign import capi unsafe "baz" baz :: GHC.Types.Double ->
                                        GHC.Types.IO ()
foreign import stdcall safe "bay" bay :: (GHC.Types.Int ->
                                          GHC.Types.Bool) ->
                                         GHC.Types.IO GHC.Types.Int
foreign import javascript unsafe "bax" bax :: GHC.Ptr.Ptr GHC.Types.Int ->
                                              GHC.Types.IO GHC.Base.String
TH_foreignCallingConventions.hs:(13,2)-(24,2): Splicing declarations
    do let fi cconv safety lbl name ty
             = ForeignD (ImportF cconv safety lbl name ty)
       dec1 <- fi CCall Interruptible "&" (mkName "foo") <$> [t| Ptr () |]
       dec2 <- fi Prim Safe "bar" (mkName "bar") <$> [t| Int# -> Int# |]
       dec3 <- fi CApi Unsafe "baz" (mkName "baz")
                 <$> [t| Double -> IO () |]
       dec4 <- fi StdCall Safe "bay" (mkName "bay")
                 <$> [t| (Int -> Bool) -> IO Int |]
       dec5 <- fi JavaScript Unsafe "bax" (mkName "bax")
                 <$> [t| Ptr Int -> IO String |]
       runIO
         $ mapM_ (putStrLn . pprint) [dec1, dec2, dec3, dec4, dec5]
             >> hFlush stdout
       return [dec1, dec2]
  ======>
    foreign import ccall interruptible "&" foo :: Ptr ()
    foreign import prim safe "bar" bar :: Int# -> Int#