E4042

E4042#

编译器诊断名称:invalid_stub_type

不合法的桩类型。

定义 FFI 函数时,每个参数和返回值类型都必须是有效的桩类型,并且能由所选后端原生表示。

例如,FixedArray[T] 不是 Wasm GC 后端的有效桩类型。

错误示例:#

pub fn ffi(array : FixedArray[Int]) -> Unit = "mod" "ffi"
//                 ^~~~~~~~~~~~~~~
// Error: Invalid stub type.

建议#

通过 FFI 接口传递非原生类型的方式取决于 MoonBit 编译器后端和你使用的运行时。请直接使用原生桩类型,或传递句柄/索引,并在宿主端管理复合值。

pub fn ffi(value : Int) -> Unit = "mod" "ffi"