компилится этот гист https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=3f75b0cd9c970a370836708935f7842a
Если заккоментировать функцию ошибка пропадает.
Эксплейн E0597 приводит пример с опшном, где значение, которое ему ассайнится, живет недостаточно долго. Но в гисте ассайна нет, и а от b никак не зависит\
Потому что T = A<'c> 'c выводится по первому параметру, а у него лайфтайм длиннее
mem::swap полей тихо вызвал бы большие проблемы. T в &mut T получает инвариантность, поэтому лайфтаймы нигде не приводятся.
а можно как-то явно этот лайфтайм c’ инстанциировать к одному и тому-же значению в месте вызова функции?
Обсуждают сегодня