Rust хочет сделать умные указатели такими же гибкими, как встроенные ссылки
Beyond the &
Тайлер Мандри, руководитель языковой команды Rust, на RustConf 2026 представил проект Beyond the &, который должен упростить работу с умными указателями. Сейчас заимствования через MutexGuard или другие пользовательские типы не так гибки, как встроенные ссылки, что усложняет обучение. Решение — открыть компиляторное понятие «места» (place) и новые трейты вроде BorrowPlace и ProjectPlace, чтобы библиотеки могли научить borrow checker корректно обрабатывать свои указатели. Дизайн пока прототип, но уже позволяет писать безопасный многопоточный код без трюков с переприсваиванием ссылок.
Мандри назвал это «небольшим изменением кода для этого примера, но большим семантическим сдвигом».
- weinzierl
«Место» (place) — это аналог левосторонних выражений (lvalue) в C: локация, из которой значения можно читать или в которую можно записывать. Разница между местом и указателем в том, что место — это абстрактное выражение, существующее на этапе компиляции, например state.cache, а указатель — это один из способов представить место во время выполнения.
Это было полезное замечание.
- chombier
Запись доклада: https://www.youtube.com/watch?v=bXs56902ElY
- creata
> Это работает, но не особенно интуитивно.
Выглядит нормально? Код падает, потому что разыменовывает MutexGuard дважды, поэтому вместо этого вы разыменовываете его один раз. Трудно представить, что это сильно способствует «сложной кривой обучения Rust».
Скорее, введение ещё большей потенциальной неявности на каждой `.` похоже на то, что сделает язык сложнее для изучения.
Есть ли пример, который действительно выигрывает от этих возможностей?