错误:仅添加要求

时间:2015-03-29 22:25:05

标签: rust

我尝试编译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特征,这对我来说很好。

这里的错误究竟是什么?

1 个答案:

答案 0 :(得分:5)

您现在无法对Drop特征使用条件或多重调度。换句话说,Drop的每个实现都必须适用于所有&#34;形式&#34; Self类型的类型,因此不能包含类型参数的边界,这些参数不属于该类型本身。

在此示例中,Session<FS>只会在Drop时实施FS: Filesystem,但Session<u8>不会。这是不允许的。要解决此错误,您可以删除Drop impl上的绑定,或将where FS: Filesystem添加到&#34;固有&#34;通过在类型声明中添加Session类型的边界。