有没有办法从 Rust 编译器中获取省略的生命周期参数?

Is there a way to obtain elided lifetime parameters from the Rust compiler?

给定一个正确编译的 Rust 程序,我能否让编译器告诉我推断出的省略生命周期是多少?

编译器(目前1)允许省略生命周期的情况实际上非常简单,编译器无法告诉您它推断的内容:

Given a function, all elided lifetimes have the same value.

编译器在可以选择的情况下不接受省略的生命周期。例外是在方法中,但是将所有生命周期绑定到 self 几乎总是预期的,因此做出这个假设是有意义的。

[1] 如果 Rust 的未来版本对省略的生命周期执行更复杂的推理,那么这个问题可能会有一个不那么简单的答案。例如,编译器可以分析整个代码库,为所有函数推断出一组连贯的生命周期(或者 impls 或 structs,如果那里也允许省略的话)。