5

我正在开发一个扩展的弃用 lint,它可以决定某些东西是否已经被弃用或将被弃用。但是还有一个问题:Crates 似乎没有版本信息。我知道我可以使用 cargo 将设置的一些环境变量来获取当前 Crate 的版本,但这不足以区分依赖项的弃用部分。

我至少可以通过ctx.sess.local_crate_source_file(如 fhahn 的当前 PR .

因此,除非获取文件路径并手动查找和解析Cargo.lock(我认为这很脆弱而且很笨拙),有没有办法获取依赖项的版本号,如果有,怎么做?

4

1 回答 1

0

改为使用#[deprecated],请参阅Rust lang rfc 1270获取文档。自 Rust 1.9 以来,这是稳定的。然后编译器完成您要创建的 lint 的工作。

在不接触编译器或使用编译器功能的情况下实现您所要求的内容的一种方法是将版本包含在 crate 的公共 API 中,并从您的 lint 中使用它。

于 2017-02-24T16:28:38.920 回答