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() {}
为什么标记为&#34;这不会编译&#34;无法编译(即使From<T>
已为所有T
实施),而标记为&#34;但这将&#34; (这取决于标准库中来自Into
的{{1}}的一揽子插件)?
我怀疑这是一个合法的错误,但我宁愿避免提交任何内容并增加噪音,如果From
与From
之间只有一些特别之处我就不会这样做。意识到。