Ошибка при создании trpl-ebook: шаблоны не допускаются в методах без тел

Я хочу создать электронную книгу Язык программирования Rust для своего Kindle.

Я скачал этот проект Github, чтобы перестроить книгу во второе издание. Когда я делаю cargo run --release, я сталкиваюсь со следующей ошибкой:

nabarun@pal:~/codesl/trpl-ebook (git:master) $ cargo run --release
   Compiling rustc-serialize v0.3.19
   Compiling memchr v0.1.11
   Compiling kernel32-sys v0.2.2
error[E0642]: patterns aren't allowed in methods without bodies
   --> /home/nabarun/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.3.19/src/serialize.rs:147:45
    |
147 |                                             &f_name: &str,
    |                                             ^^^^^^^

   Compiling aho-corasick v0.5.3
   Compiling thread-id v2.0.0
   Compiling thread_local v0.2.7
   Compiling regex v0.1.77
error: aborting due to previous error

error: Could not compile `rustc-serialize`.
warning: build failed, waiting for other jobs to finish...
error: build failed

Я попытался найти и отладить ошибку, но не смог этого сделать из-за незнания Rust на данный момент. Кто-нибудь еще сталкивался с этой ошибкой?

Я использую Ubuntu 16.04, Rust 1.25.0-nightly (b5392f545 08.01.2018), xargo 0.3.10, cargo 0.25.0-nightly (a88fbace4 29-12-2017)

Я также подал заявку в репозиторий GitHub.


person Nabarun Pal    schedule 20.01.2018    source источник


Ответы (1)


rustc-serialize 0.3.19 был выпущен 4 апреля 2016 г. Он включает синтаксис:

fn read_enum_struct_variant_field<T, F>(
    &mut self,
    &f_name: &str, // This is no longer allowed
    f_idx: usize,
    f: F,
) -> Result<T, Self::Error>;

Этот синтаксис был ошибочно разрешен до 21 октября 2016 г. (Rust 1.14.0), когда это превратилось в предупреждение. 4 ноября 2017 г. (Rust 1.23.0) это стало ошибкой.

Решение — обновить версию rustc-serialize:

cargo update -p rustc-serialize
person Shepmaster    schedule 20.01.2018