Size: a a a

2021 April 29

EG

Emmanuel Goldstein in rust_offtopic
Его можно наебать, например, просто присвоив значение в переменную.
источник

EG

Emmanuel Goldstein in rust_offtopic
Очевидно, что
let _res = func();

это не «использование» Result<T, E> в том смысле, в котором имелось в виду
источник

EG

Emmanuel Goldstein in rust_offtopic
Но #[must_use] заткнётся здесь
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
и чем это хуже forget(func()) ?
источник

EG

Emmanuel Goldstein in rust_offtopic
Тем, что forget() нужно написать в явном виде, а положить в переменную ты мог, например, собираясь потом проверить.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
так может я форгет написал собирась потом проверить и забыл
источник

EG

Emmanuel Goldstein in rust_offtopic
Или, например, другой пример — ты собрал тонну футур в вектор и забыл их все поawaitать.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
must_use тут хватит
источник

EG

Emmanuel Goldstein in rust_offtopic
Нет. Ты их сложил в вектор, это использование.
источник

EG

Emmanuel Goldstein in rust_offtopic
А то, что ты потом весь этот вектор молча дропнул — так это другой вопрос.
источник

EG

Emmanuel Goldstein in rust_offtopic
У тебя ни одного варнинга даже не будет.
источник

EG

Emmanuel Goldstein in rust_offtopic
А вот линейные типы тебе не дадут их дропнуть не решив в явном виде, что ты хочешь с ними делать
источник

EG

Emmanuel Goldstein in rust_offtopic
Это то же самое преимущество, что сумтипы для хендлинга ошибок имеют перед туплами — ты должен принять явное решение
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну тут ошибка в том что must_use не протекает
источник

EG

Emmanuel Goldstein in rust_offtopic
Ноп.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Vec<MustUse>  != mustuse
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
я говорю про теже линтипы что и ты. Просто непонятно почему их нельзя атрибутами денотировать
источник

EG

Emmanuel Goldstein in rust_offtopic
Это не спасло бы. Этот вектор активно используется, в него, вон, другие футуры пушатся.
источник

EG

Emmanuel Goldstein in rust_offtopic
#[must_use] проверяется только в моменте возвращения из функции, по сути
источник

EG

Emmanuel Goldstein in rust_offtopic
А надо проверять в момент дропа
источник