From 8ca8748627ac914ecf388c45390ed6a56bf206cb Mon Sep 17 00:00:00 2001 From: Bodigrim Date: Sun, 11 Jan 2026 22:00:37 +0000 Subject: [PATCH] Add another example for GHC-58481 --- .../messages/GHC-39999/overloaded-number/index.md | 2 +- .../messages/GHC-58481/example6/after/CAPI.hs | 8 ++++++++ .../messages/GHC-58481/example6/before/CAPI.hs | 6 ++++++ message-index/messages/GHC-58481/example6/index.md | 13 +++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 message-index/messages/GHC-58481/example6/after/CAPI.hs create mode 100644 message-index/messages/GHC-58481/example6/before/CAPI.hs create mode 100644 message-index/messages/GHC-58481/example6/index.md diff --git a/message-index/messages/GHC-39999/overloaded-number/index.md b/message-index/messages/GHC-39999/overloaded-number/index.md index e72a2589..2c765e0f 100644 --- a/message-index/messages/GHC-39999/overloaded-number/index.md +++ b/message-index/messages/GHC-39999/overloaded-number/index.md @@ -19,7 +19,7 @@ Lib.hs:4:17: error: [GHC-39999] ## Explanation Sometimes, when GHC encounters a type error, it suggests solving -it from an unexpected end. In this case, when it encouters a literal +it from an unexpected end. In this case, when it encounters a literal instead of a list, it does not just complain about it. Instead it suspects that maybe an author meant to overload numeric literals so that they can mean lists too. diff --git a/message-index/messages/GHC-58481/example6/after/CAPI.hs b/message-index/messages/GHC-58481/example6/after/CAPI.hs new file mode 100644 index 00000000..3ba391b0 --- /dev/null +++ b/message-index/messages/GHC-58481/example6/after/CAPI.hs @@ -0,0 +1,8 @@ +{-# LANGUAGE CApiFFI #-} + +module CAPI where + +import Foreign.C + +foreign import capi "setenv" + c_setenv :: CString -> CString -> CInt -> IO CInt diff --git a/message-index/messages/GHC-58481/example6/before/CAPI.hs b/message-index/messages/GHC-58481/example6/before/CAPI.hs new file mode 100644 index 00000000..bcc261ff --- /dev/null +++ b/message-index/messages/GHC-58481/example6/before/CAPI.hs @@ -0,0 +1,6 @@ +module CAPI where + +import Foreign.C + +foreign import capi "setenv" + c_setenv :: CString -> CString -> CInt -> IO CInt diff --git a/message-index/messages/GHC-58481/example6/index.md b/message-index/messages/GHC-58481/example6/index.md new file mode 100644 index 00000000..39e54227 --- /dev/null +++ b/message-index/messages/GHC-58481/example6/index.md @@ -0,0 +1,13 @@ +--- +title: Use of `capi` calling convention +--- + +In this example the user attempted to use `capi` calling convention for foreign imports without enabling the `CApiFFI` extension, which leads to this generic parsing error. + +``` +CAPI.hs:5:16: error: [GHC-58481] + parse error on input ‘capi’ + | +5 | foreign import capi "setenv" + | ^^^^ +```