2015-04-03 12 views
2

Как именно работает сглаживание типа в Rust?Типичные псевдонимы в ржавчине

Я изучает поломку в какой-то старый код ржавчины я не писал, и заметил, что Thunk::new(...) причины этой ошибки:

error: type `Box<alloc::boxed::FnBox<_, Output=_> + Send>` 
    does not implement any method in scope named `new` 

Thunk определяется как:

type Thunk<'a, A =(), R =()> = Box<FnBox<A, Output=R> + Send + 'a>; 

Я думал Alias::method не работает в предыдущих версиях Rust? Как мне изменить Thunk::new во что-то, что работает? Не хватает ли для импорта Box или что-то в этом роде?

ответ

4

Thunk::new использовано для работы, потому что оно used to be a struct, а не псевдонимом типа. Это было изменено два дня назад: Add (unstable) FnBox trait as a nicer replacement for Thunk.

Чтобы исправить это, замените Thunk::new на Box::new, также как и во всей стандартной библиотеке этого PR. Также измените thunk.invoke() на thunk().

+0

Отличный ответ. Благодаря! –

Смежные вопросы