История изменений
Исправление tailgunner, (текущая версия) :
Ну так что, реальный тип переменной b можно вывести?
Да.
Продемонстрируй.
Но ведь тебе это уже продемонстрировали. ЧСВ мешает по ссылкам ходить? Окей, вот:
#[inline(never)]
fn foo() -> impl Debug {
1u32
}
Вот сгенерированный MIR:
fn foo() -> u32{
let mut _0: u32; // return place
bb0: {
_0 = const 1u32; // bb0[0]: scope 0 at src/main.rs:5:5: 5:9
// ty::Const
// + ty: u32
// + val: Value(ByVal(Bytes(1)))
// mir::Constant
// + span: src/main.rs:5:5: 5:9
// + ty: u32
// + literal: const 1u32
return; // bb0[1]: scope 0 at src/main.rs:6:2: 6:2
}
}
Видишь возвращаемый тип foo? А теперь иди проспись.
Исходная версия tailgunner, :
Ну так что, реальный тип переменной b можно вывести?
Да.
Продемонстрируй.
Но ведь тебе это уже продемонстрировали. ЧСВ мешает по ссылкам ходить? Окей, вот:
#[inline(never)]
fn foo() -> impl Debug {
1u32
}
Вот сгенерированный MIR
fn foo() -> u32{
let mut _0: u32; // return place
bb0: {
_0 = const 1u32; // bb0[0]: scope 0 at src/main.rs:5:5: 5:9
// ty::Const
// + ty: u32
// + val: Value(ByVal(Bytes(1)))
// mir::Constant
// + span: src/main.rs:5:5: 5:9
// + ty: u32
// + literal: const 1u32
return; // bb0[1]: scope 0 at src/main.rs:6:2: 6:2
}
}
Видишь возвращаемый тип foo? А теперь иди проспись.