Вышел Rust 1.31


#1

https://blog.rust-lang.org/2018/12/06/Rust-1.31.html

Новый адрес статьи:

Привет новый (и пока страшно глючащий) сайт, Rust 2018, NLL, constfn и еще пачка крутых штук. :slight_smile:

Подозреваю, в ближайщие дни будет дикая волна Rust 2018 постов.


UPD: хаброперевод:


#2

Увы, фальтстарт…
HTTP 404


#3

А вот теперь уже появился…


#4

NLL в стейбл, да ты шоооо!
Отличный релиз.


#5

Я только что понял что в Rust 2015 пакетов можно использовать 2018 зависимости, а не только наоборот из нового старое.
Нифига я пропустил “мелочь”, это же офигенно.


#6

Радостно попробовал const fn впихнуть в код

local variables in const fn are unstable

:frowning: да блин, только совсем тривиальное пока еще можно.


#7

А clippy, rls, rustfmt выпилили из nightly что ли? В rustup я их вижу только в stable toolchain.


#8

Не, должно все на месте быть. Там только “-preview” суффикс убрали у чего-то из и все.


#9

С cargo fix надо осторожно.

Он при использовании extern crate longlongname as name; без предупреждений везде импорты правит с use name; на use crate::name, запутывая все, потому что кажется что это внутренние импорты, а не внешние. Правильное решение тут - через сам Cargo.toml переименовать longlongname сразу в name и руками убрать лишние crate:: из путей;

Еще при использовании такого псевдонима:

pub type Cb<'c> = &'c mut dyn FnMut(&State, &Event, ApplyPhase);

cargo fix радостно расставляет везде лишний вывод ВЖ, который вообще не нужен:

- pub fn execute(state: &mut State, command: &Command, cb: Cb) -> Result<(), Error> {
+ pub fn execute(state: &mut State, command: &Command, cb: Cb<'_>) -> Result<(), Error> {

:pensive:


UPD: В чате пишут что:

Denis Lisov @tanriol: не упоминать вообще такой lifetime депрекейтнута в RFC 2115.

Может я не прав про <'_>, надо будет поразбираться.


#10

Интересно, а что происходит в этом случае?

Заменяется на &mut dyn FnMut(&State, &Event, ApplyPhase) без 'c?


#11

Да, обычный https://doc.rust-lang.org/nomicon/lifetime-elision.html работает


#12

Мне кажется или cargo check стал быстрее работать? А в месте с ним и rls?


#13

@freecoder выложил на хабру перевод новости.