Size: a a a

2020 August 17

p

polunin.ai in rust_offtopic
Как ты сконструируешь enum Void { } ?
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
Как ты сконструируешь enum Void { } ?
по-моему боттом и воид это разные вещи
источник

r

red75prime in rust_offtopic
Alex Zhukovsky
значит используя loop {} я могу сконструировать значение типа !
Используя loop {}, мы не конструируем никакое значение. Тип bottom -> a населён, но bottom - нет
источник

AZ

Alex Zhukovsky in rust_offtopic
Т-34 85
Это как? Как он может сконсируироваться? Какой размер?
размер это деталь реализации
источник

SS

Sergey S in rust_offtopic
Alex Zhukovsky
fn foo2() -> ! {
 loop {}
}
Тип не сконструирован
источник

AZ

Alex Zhukovsky in rust_offtopic
red75prime
Используя loop {}, мы не конструируем никакое значение. Тип bottom -> a населён, но bottom - нет
let x = loop {}; - оно компилируется и у x значение определенного типа
источник

SS

Sergey S in rust_offtopic
loop {} вернет сконструированный !, когда завершится
источник

SS

Sergey S in rust_offtopic
но он не завершится
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
let x = loop {}; - оно компилируется и у x значение определенного типа
Тип необязательно должен конструироваться, на то он и тип
источник

r

red75prime in rust_offtopic
Alex Zhukovsky
let x = loop {}; - оно компилируется и у x значение определенного типа
У x нет никакого значения. Тип есть, да
источник

SS

Sergey S in rust_offtopic
конструирования не произойдет
источник

AZ

Alex Zhukovsky in rust_offtopic
Sergey S
loop {} вернет сконструированный !, когда завершится
я говорю про "вернул" с точки зрения статического анализатора
источник

AZ

Alex Zhukovsky in rust_offtopic
он работает в компайл тайм а не рантайме
источник

AZ

Alex Zhukovsky in rust_offtopic
red75prime
У x нет никакого значения. Тип есть, да
переменная типа не может не иметь значения
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
я говорю про "вернул" с точки зрения статического анализатора
Конструирование же возможно только в рантайме
источник

p

polunin.ai in rust_offtopic
С точки зрения анализатора нет ничего кроме типов
источник

r

red75prime in rust_offtopic
Alex Zhukovsky
переменная типа не может не иметь значения
Вполне себе может. Этот код прямо говорит, что x никогда не будет присвоено значение.
источник

SS

Sergey S in rust_offtopic
С точки зрения анализатора там возврата нет. Функция пообещала не завершиться, ее тело удовлетворяет контракту, так же не завершаясь.
источник

SS

Sergey S in rust_offtopic
Тип не сконструирован
источник

AZ

Alex Zhukovsky in rust_offtopic
red75prime
Вполне себе может. Этот код прямо говорит, что x никогда не будет присвоено значение.
я не вижу разницы между "никогда не присвоено значение" и "значение типа боттом"
источник