如何允许已弃用的功能?

Wil*_*hes 7 deprecated rust

我有一个依赖于 string_cache 的 Rust 项目,它需要每晚。但是,由于不推荐使用的功能,最新版本的 nightly 拒绝编译:

$ cargo build
   Compiling string_cache v0.1.0 (https://github.com/servo/string-cache#45f19068)
/home/wilfred/.multirust/toolchains/nightly/cargo/git/checkouts/string-cache-efa5c30b1d5a962c/master/src/atom/mod.rs:65:21: 65:37 error: use of deprecated item: use `String::from` instead, #[deny(deprecated)] on by default
/home/wilfred/.multirust/toolchains/nightly/cargo/git/checkouts/string-cache-efa5c30b1d5a962c/master/src/atom/mod.rs:65             string: String::from_str(string_to_add),
                                                                                                                                            ^~~~~~~~~~~~~~~~
error: aborting due to previous error
Could not compile `string_cache`.

To learn more, run the command again with --verbose.
Run Code Online (Sandbox Code Playgroud)

我如何编译 string_cache?我试过添加

#![allow(deprecated)]
Run Code Online (Sandbox Code Playgroud)

到我的 main.rs,但这不会改变行为。

She*_*ter 3

默认情况下,编译器不会对已弃用方法的使用施加任何限制:

fn main() {
   (32.0f64).is_positive();
}
Run Code Online (Sandbox Code Playgroud)

编译通过,但是有警告:

warning: use of deprecated item: renamed to is_sign_positive, #[warn(deprecated)] on by default
Run Code Online (Sandbox Code Playgroud)

您的错误消息有助于指出罪魁祸首:

#[deny(deprecated)] on by default
Run Code Online (Sandbox Code Playgroud)

您必须弄清楚deny指定的位置。

  • @Chris Morgan:缺少分叉代码(如果可用)并取决于您自己的分叉。 (3认同)