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 (将#修改为@)