有没有办法从Rust编译器获取elided生命周期参数?

时间:2016-01-10 10:59:35

标签: rust lifetime compiler-options

鉴于正确编译的Rust程序,我是否可以让编译器告诉我推断的生命周期是什么?

1 个答案:

答案 0 :(得分:3)

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

  

给定一个函数,所有省略的生命周期都具有相同的值。

编译器在可以选择的情况下不接受省略的生命周期。方法中的例外是,但将所有生命周期与self联系起来几乎总是如此,因此有必要做出这样的假设。

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