为什么不能从From<>中获得更高的kinded特性。在相关类型上满足,但进入<>能够?

时间:2015-12-15 03:59:55

标签: rust

trait A<'self_> {
    type T;
}

trait B: for<'self_> A<'self_> {
    type U: for<'self_> From<<Self as A<'self_>>::T>;  // <-- this won't compile
    // type U: for<'self_> Into<<Self as A<'self_>>::T>;  // <-- but this will
}

struct M;
impl<'self_> A<'self_> for M {
    type T = usize;
}
impl B for M {
    type U = usize;
}

fn main() {}

playpen link

为什么标记为&#34;这不会编译&#34;无法编译(即使From<T>已为所有T实施),而标记为&#34;但这将&#34; (这取决于标准库中来自Into的{​​{1}}的一揽子插件)?

我怀疑这是一个合法的错误,但我宁愿避免提交任何内容并增加噪音,如果FromFrom之间只有一些特别之处我就不会这样做。意识到。

0 个答案:

没有答案