Berkus
ну еслиб можно, уже реализовали б
не вижу проблемы распарсить этот кусок в АСТ
Vladimir
о том, что мапа бороздится иммутабельно в патерн матчинге, а дальше мутабельно
Vladimir
та распарсить распарсит, а заставить бороучекер доказать что это валидно
Vladimir
в аст у раста не реализовано
Vladimir
и будет реализовано только в мир
Vladimir
как я понимаю
Anonymous
а как тогда мир генерируется))))
分解物質
分解物質
rust
分解物質
mir
Alex
https://github.com/solson/miri хуясе.
Alex
я так понимаю он без компиляции может mir интерпритировать?
Vladimir
分解物質
лол
分解物質
Anonymous
в чем шутка?
Kerrigan
я не понял
Kerrigan
знаю такой про жаву, но не тут
分解物質
в чем шутка?
это такая защита от случайного = вместо ==
Vladimir
В сихе можно написать if(argc=1)
Alex
это правило йоды
Anonymous
лол
分解物質
ну это идиотизм
Anonymous
в расте же let 1 = a; сделает ассерцию?
Vladimir
Че
Vladimir
Какую ассерцию
Vladimir
А, да то единица
分解物質
помню однажды =! вместо != написал
Anonymous
а стоп
Anonymous
оно всегда будет фейлиться
Anonymous
со странной ошибкой
Anonymous
Vladimir
Да
分解物質
в расте же let 1 = a; сделает ассерцию?
так это не в объявлениях а в условиях if (x = 1)
Vladimir
Оно считает, что это часть if let наверное
分解物質
Vladimir
А если надо сравнить две переменные?
分解物質
let принимает паттерн
там про C топик
Anonymous
а я спрашиваю про раст
Anonymous
let () =();
а если сет не бинарный то не работает
Vladimir
сет?
Vladimir
бинарный
Vladimir
ни понимаю
Anonymous
Unit = {(), !}
Nikita
Nikita
! - не значение
分解物質
Vladimir
Unit = {(), !}
#![feature(never_type)] enum Void {} enum X{ A, B(Void) } fn main () { let X::A = X::A; }
Vladimir
работает
Anonymous
enum X { A, B(Void) } эквивалентно enum X { A }
Oleg
#![feature(never_type)] enum Void {} enum X{ A, B(Void) } fn main () { let X::A = X::A; }
А без never_type пустой энум нельзя объявить?
Vladimir
А без never_type пустой энум нельзя объявить?
он не будет работать как невер тайп х)
Anonymous
ну ты сам написал !
любой тип включает !
Vladimir
ничто не включает в себя !
Vladimir
это же невер тайп
Nikita
любой тип включает !
Это не значение
Nikita
Такого значения не может быть
Nikita
! может интерпретироваться компилятором как любой тип, поскольку он никогда не существует
Alex
! не существует, это все враки!
Vladimir
любой тип включает !
#![feature(never_type)] enum X{ A, B(!,!,!,!,!,!,!,!,!,!,!,!,!,!,!,!,!,!,!,!,!,!,!) } fn main () { let X::A = X::A; }
Vladimir
на если так понятнее )
Anonymous
! может быть получен от любого типа
Vladimir
он вообще не может быть получен
Anonymous
fn meme () -> () { panic!("Test") }
Vladimir
эмм
Vladimir
ты серьезно?
Nikita
! может интерпретироваться компилятором как любой тип, поскольку он никогда не существует
Vladimir
! может быть получен от любого типа
#![feature(never_type)] fn proced() -> ! { 123u32 } fn main () { }
Nikita
Представь типы как множества возможных значений. ! - пустое множество, а пустое множество является подмножеством любого множества
Vladimir
| 3 | fn proced() -> ! { | - expected `!` because of return type 4 | 123u32 | ^^^^^^ expected !, found u32 | = note: expected type `!` found type `u32`
Anonymous
ну