E0094#
警告名称:unknown_intrinsic
#intrinsic 属性指定了编译器无法识别的内建指令名称。编译器会忽略该属性,改用普通函数体。此警告默认启用。
错误示例#
下面的名称是特意虚构的。函数对于输入 41 仍会返回 42,但其属性会产生警告:
///|
#intrinsic("%not_a_real_intrinsic")
pub fn add_one(value : Int32) -> Int32 {
value + 1
}
///|
test {
assert_eq(add_one(41), 42)
}
建议#
删除属性并保留普通实现。内建指令不是稳定的 API,不建议在应用代码中使用。
///|
pub fn add_one(value : Int32) -> Int32 {
value + 1
}
///|
test {
assert_eq(add_one(41), 42)
}
这与 E4070 不同:fn f(x : Int32) -> Int32 = "%not_a_real_intrinsic" 这样的声明没有可供回退的普通函数体,因此未知内建指令会导致错误,而不是警告。