Неразрешенный импорт `std::lazy` после обновления rust

Раньше это работало нормально, однако после обновления Rust до rustc 1.67.0-nightly (b7bc90fea 2022-11-21) (давно этого не было) оно больше не работает:

Я включил once_cell, конечно.

#![feature(once_cell)]

use std::lazy::Lazy;

Выдает ошибку:

error[E0432]: unresolved import `std::lazy`
39 | use std::lazy::Lazy;
   |          ^^^^ could not find `lazy` in `std`

Я просмотрел вопросы GitHub по rustlang, и, кажется, ни у кого нет такой проблемы.

Я проверил последние документы, и ничего не изменилось с точки зрения местоположения.

https://doc.rust-lang.org/std/lazy/index.html

Если lazy есть в std, но компилятор его не находит, что мне делать в такой ситуации? Нужна ли переустановка?

Вы должны посмотреть документы nightly, где вы увидите, что они были перемещены в std::cell::LazyCell

PitaJ 22.11.2022 22:24
Почему Python в конце концов умрет
Почему Python в конце концов умрет
Последние 20 лет были действительно хорошими для Python. Он прошел путь от "просто языка сценариев" до основного языка, используемого для написания...
0
1
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы проверили не то место. Ночные документы находятся в:

https://doc.rust-lang.org/nightly/std/

...что показывает, что этот модуль действительно больше не существует, так как он был перемещен в std::cell для Lazy (который теперь называется LazyCell ) и std::sync для SyncLazy (который теперь называется LazyLock).

Это произошло в PR #98165 - однократные переименования ячеек.

Другие вопросы по теме