我尝试编译fuse包。
此操作失败,并显示以下错误:
session.rs:110:1: 114:2 error: The requirement `FS : Filesystem` is added only by the Drop impl. [E0367]
相应的line如下所示:
impl<FS: Filesystem> Drop for Session<FS>
即。为Drop
类型实现了Session
特征,这对我来说很好。
这里的错误究竟是什么?
答案 0 :(得分:5)
您现在无法对Drop
特征使用条件或多重调度。换句话说,Drop的每个实现都必须适用于所有&#34;形式&#34; Self
类型的类型,因此不能包含类型参数的边界,这些参数不属于该类型本身。
在此示例中,Session<FS>
只会在Drop
时实施FS: Filesystem
,但Session<u8>
不会。这是不允许的。要解决此错误,您可以删除Drop
impl上的绑定,或将where FS: Filesystem
添加到&#34;固有&#34;通过在类型声明中添加Session
类型的边界。