我正在处理一个扩展的弃用lint,它可以决定已经或 是否会被弃用。但是还有一个问题:Crates似乎没有版本信息。我知道我可以使用货物将设置的一些环境变量来获取当前Crate的版本,但这还不足以区分已弃用的依赖项部分。
我至少可以通过ctx.sess.local_crate_source_file
获取当前的包装箱路径(如fhahn的current PR。
因此,除非获取文件路径并手动查找和解析Cargo.lock
(我认为这是脆弱和hacky),有没有办法获取依赖项的版本号,如果是,如何?
答案 0 :(得分:0)
请改用#[deprecated]
,有关文档,请参阅Rust lang rfc 1270。自Rust 1.9以来这是稳定的。然后编译器完成你想要创建的lint的工作。
一种在不触及编译器或使用编译器功能的情况下实现您所要求的方法的方法是将该版本包含在其公共API的包中,并使用来自您的lint。