Size: a a a

2021 April 18

TK

Traveller Kolsky in rust_offtopic
Есть, просто его не должно быть в системе типов безопасного раста, и тогда надо сделать заключение, как ты и сказал
источник

AN

Alex Noname in rust_offtopic
Получается есть некий 'universal которой субтип 'static?
источник

TK

Traveller Kolsky in rust_offtopic
Чисто математически так получается, но вообще-то по-хорошему 'universal='static надо было везде вставить
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну покажите простой контрпример: код где в качестве лайфтайма 'a нельзя подставить 'static - и будет ошибка
источник

TK

Traveller Kolsky in rust_offtopic
Но ссылки, живущие дольше 'static, не имеют смысла, а пример продемонстрирован fake-static
источник

AN

Alex Noname in rust_offtopic
Я тоже так подумал. и не понял какого фига это так.
источник

AN

Alex Noname in rust_offtopic
Ну и что. Это ничего не даёт. Там можно в фейк статик поставить вместо статик любой внешний дженерик.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
в fake-static выводится 'static а не "лайфтайм дольше статик"
источник

TK

Traveller Kolsky in rust_offtopic
Там не проверяется баунд на 'a, и 'a становится unbounded lifetime
источник

AN

Alex Noname in rust_offtopic
И просто получить функцию которая кастует лайфтаймы как скажешь. Не обязательно в статик. Из любого любой.
источник

TK

Traveller Kolsky in rust_offtopic
Что позволяет делать с ним что угодно, в том числе сокращать до 'static
источник

AN

Alex Noname in rust_offtopic
Трипл фейспалм жпг
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
fn helper<'a, 'b, T>(_: &'a &'b (), v: &'b T) -> &'a T where 'a : 'b { v }
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
проблема в том что этот код компилится, хотя в теории он в лучшем случае должен разрешать 'a = 'b
источник

TK

Traveller Kolsky in rust_offtopic
Он не проверяется позже, так как 'b тоже unbounded
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну значит раст говно что сказать
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
генерики етсь генерики
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
может он и T не должен проверятЬ?
источник

TK

Traveller Kolsky in rust_offtopic
Это косяк генериков, что тут поделаешь. Не проверили в одном месте и получили unsound.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
речь о том что правильные баунды: fn helper<'a, 'b, T>(_: &'a &'b (), v: &'b T) -> &'a T where 'b : 'a { v }
источник