如何在类型签名中包含“:发送”?

时间:2014-07-26 18:17:32

标签: rust

我正在将一些迭代器和procs链接在一起,并试图让一些代码执行懒惰。不幸的是,我遇到了一个我无法克服的错误。

错误是指返回类型,并表示“预期无边界但找到Send”。我之前从未在返回类型描述中包含“发送”,并且rustc将不会解析,例如收藏:: VEC :: MoveItems:发送取代。我应该如何在类型签名中包含发送? (或者我应该做些什么?)

  

../ racer / nameres.rs:623:12:623:14错误:类型不匹配:预期core::iter::Chain<core::iter::Chain<core::iter::Chain<core::iter::Chain<core::iter::FlatMap<'static,proc() -> collections::vec::MoveItems<racer::Match>,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>>,collections::vec::MoveItems<racer::Match>>,core::iter::FlatMap<'static,proc() -> collections::vec::MoveItems<racer::Match>,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>>,collections::vec::MoveItems<racer::Match>>>,core::iter::FlatMap<'static,proc() -> collections::vec::MoveItems<racer::Match>,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>>,collections::vec::MoveItems<racer::Match>>>,core::iter::FlatMap<'static,proc() -> collections::vec::MoveItems<racer::Match>,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>>,collections::vec::MoveItems<racer::Match>>>,core::iter::FlatMap<'static,proc() -> collections::vec::MoveItems<racer::Match>,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>>,collections::vec::MoveItems<racer::Match>>>但找到了core::iter::Chain<core::iter::Chain<core::iter::Chain<core::iter::Chain<core::iter::FlatMap<'_,proc() -> collections::vec::MoveItems<racer::Match>,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>>,collections::vec::MoveItems<racer::Match>>,core::iter::FlatMap<'_,proc() -> collections::vec::MoveItems<racer::Match>,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>>,collections::vec::MoveItems<racer::Match>>>,core::iter::FlatMap<'_,proc() -> collections::vec::MoveItems<racer::Match>,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>>,collections::vec::MoveItems<racer::Match>>>,core::iter::FlatMap<'_,proc() -> collections::vec::MoveItems<racer::Match>,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>>,collections::vec::MoveItems<racer::Match>>>,core::iter::FlatMap<'_,proc() -> collections::vec::MoveItems<racer::Match>:Send,core::option::Item<proc() -> collections::vec::MoveItems<racer::Match>:Send>,collections::vec::MoveItems<racer::Match>>>(预计没有边界但找到Send)< / p>

1 个答案:

答案 0 :(得分:0)

这是一个相当丑陋的案例,而且具有误导性。它应该固定并保持一致。

显示为proc() -> T:Send的内容必须写为proc():Send -> T