1

每次我看到如下错误:

错误:关联的常量是实验性的(参见问题 #29646)
...
= 帮助:将 #![feature(associated_consts)] 添加到板条箱属性以启用
= 注意:此错误源自当前板条箱之外的宏

我 fork the crate 并将该功能添加到 crate 属性中,然后替换我的 Cargo.toml 中的依赖项:

[replace."bitflags:1.0.0"]
git = "https://github.com/boehm-s/bitflags"
rev = "bb2afce"

有没有办法在不分叉板条箱的情况下摆脱这些错误?

4

2 回答 2

6

相关常量最近在 Rust 1.20 中稳定了;如果你升级你的 Rust 编译器,这个错误应该会消失而无需任何代码更改。

除了[replace]and[patch]之外,还可以选择使用.cargo/config本地覆盖依赖项而不更改Cargo.toml.

于 2017-10-16T19:18:52.547 回答
4

如何在不分叉 crate 的情况下将 #![feature(***)] 添加到另一个 crate 的属性?

没有。你不能改变另一个箱子,除非……改变它。

您正在使用旧的夜间编译器;更新它。如果您使用的是夜间编译器,那么您有责任使其保持最新。如果您不知道为什么要使用 nightly 编译器,请切换到稳定的编译器。


只有在以下情况下才会发生这种情况:

  1. 您正在使用夜间编译器。如果不是,您将不会收到添加属性的建议,这将是一个硬错误。
  2. 您正在使用的 crate 依赖于您的编译器版本中尚未稳定的功能,因此需要该属性才能启用它。
  3. 该功能已在较新版本的 Rust 中稳定,因此 crate 本身不再需要具有该属性。

对于此示例,您可以阅读crates 更改日志

1.0.0

  • [重大更改]宏现在生成关联的常量 (#24)

  • [重大更改]由于使用了关联常量,支持的最低版本是 Rust 1.20

于 2017-10-16T19:36:52.687 回答