E0027#
语法已弃用。请参考警告消息,了解原因和潜在修复方法。
例如,其中一种已废弃的用法是将构造函数用作函数。相反,应使用部分应用来从构造函数创建一个函数。
错误示例#
enum Message {
Add(String)
} derive(Show)
fn perform[T](message : (T) -> Message, produce : () -> T) -> Message {
//
// Warning: The syntax fn f[..] for declaring polymorphic function is
// deprecated. Use fn[..] f instead.
message(produce())
}
fn main {
println(perform(Add, fn() { "Hello, world!" }))
// ^^^
// Warning: Using constructor as function directly is
// deprecated. Use the partial application syntax instead
}
建议#
根据警告信息迁移代码。在这种情况下,应将代码修改为使用部分应用语法。
///|
enum Message {
Add(String)
} derive(Show)
///|
fn[T] perform(message : (T) -> Message, produce : () -> T) -> Message {
message(produce())
}
///|
fn main {
println(perform(Add(_), fn() { "Hello, world!" }))
}