The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"70% проблем с безопасностью в Chromium вызваны ошибками при ..."
Отправлено Аноним, 26-Май-20 18:40 
> Может со временем борроу-чекер станет умнее и научится справляться и с этой
> ситуацией. Но прикинь теперь, что get_node принимает не идентификатор нода, а
> лямбду, и работает как std::iter::Iterator::find. И внутри лямбды я вызываю функцию
> находящуюся в другом крейте, которая вообще (с точки зрения компилятора) хрен
> знает что делает. Я применяю такой get_node дважды, и получаю две
> ссылки внутрь структуры. Борроу-чекер вообще уже никак не может проверить, что
> ref_a и ref_b ссылаются на непересекающиеся куски памяти. На самом деле
> это и мне может быть неочевидно в каких-то случаях, и мне
> отдельно придётся размышлять над этим.

Конечно можно щас это всё на глупый borrow checker списать, но как до вызова некой неведомой какой лямбды можно было бы понять что она заимствовать будет? Здесь не проверятор тупой, а разработчик хочет невозможного.

Есть гораздо понятнее случаи, когда оно не справляется. Например если структура с дженериком, который в impl задан как Self. Если есть лайфтайм на структуре, которым типизировано хотя бы одно поле - скомпилировать не выйдет, потому что лайфтайм к дженерику не пришить. А он там есть в impl, да задать никак, в синтаксисе не предусмотрено.
А это очень даже надо, чтобы тесты можно было писать, задавая все зависимости через дженерики и передавая в тестах туда заглушки и имитаторы.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру