E0027#
Warning name: deprecated_syntax
语法已弃用。请参考警告消息,了解原因和潜在修复方法。
例如,一种已弃用的用法是将构造器当作函数使用。应改为用 lambda 包装构造器调用。
错误示例#
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
}
建议#
根据警告信息迁移代码。在这种情况下,应将代码修改为使用 lambda。
///|
enum Message {
Add(String)
}
///|
fn[T] perform(message : (T) -> Message, produce : () -> T) -> Message {
message(produce())
}
///|
fn main {
match perform(x => Add(x), fn() { "Hello, world!" }) {
Add(message) => println(message)
}
}