如何解决Rust Borrow Checker的详细和/或调试输出
是否有某种方法可以从Rust借阅检查器获取详细的输出,以查看每个源文件的逻辑?当生命周期和/或借用存在某种问题时,有时会产生一些非常有用的输出来解释该问题。没有问题时,有没有办法得到类似的东西?
我现在感兴趣的特定案例来自Rust异步书(https://rust-lang.github.io/async-book/02_execution/02_future.html):
if let Some(a) = &mut self.a {
if let Poll::Ready(()) = a.poll(wake) {
self.a.take();
}
}
这可以成功编译,但是我还不清楚如何编译。似乎您正在匹配对self.a
的可变引用,因此该引用需要在整个块中都有效,但是在该块内部,您调用take
,这需要对{ {1}}。
我对这个特定案例的工作方式很感兴趣,但是我也希望能够追踪类似的案例。似乎在编译器中必须有一个借项检查器检查一系列布尔条件的地方,如果您可以将某种日志转储到文件中,那将是非常好的。有什么办法可以做这样的事情吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。