首页 文章

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

提问于
浏览
0

每次我看到如下错误:

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

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

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

有没有办法摆脱这些错误而不分拣板条箱?

2 回答

  • 4

    如何在不分拣板条箱的情况下将#![feature(***)]添加到另一个箱子的属性中?

    don't . 如果不改变它,你就无法改变另一个箱子 .

    您正在使用旧的夜间编译器; update it . 如果您使用的是夜间编译器,那么's your responsibility to keep it up-to-date. If you don'知道为什么您有夜间编译器,切换到稳定的编译器 .


    只有在以下情况下才会发生

    • 您正在使用夜间编译器 . 如果你没有得到添加属性的建议,那将是一个很难的错误 .

    • 您正在使用的crate依赖于您的编译器版本中尚未稳定的功能,因此需要该属性才能启用它 .

    • 该功能已在较新版本的Rust中得到稳定,因此包不再需要具有该属性本身 .


    在本例中,您可以阅读the crates changelog

    1.0.0 [破坏变化]宏现在生成相关常量(#24)[破坏变化]由于使用了相关常量,最小支持版本是Rust 1.20

  • 5

    相关的常数最近在Rust 1.20中得到了稳定;如果升级Rust编译器,此错误应该在没有任何代码更改的情况下消失 .

    除了[replace] and [patch]之外,还可以选择使用.cargo/configoverride a dependency locally而不更改 Cargo.toml .

相关问题