let mut variable: Type;
loop {
    variable = value;
}

or

loop {
    let variable: Type = value;
}
  • Anh Kagi@jlai.lu
    link
    fedilink
    arrow-up
    13
    ·
    edit-2
    20 hours ago

    according to godbolt: https://rust.godbolt.org/z/hP5Y3qMPW

    use rand::random;
    
    pub fn main1() {
        let mut var : u128;
        loop {
            var = random();
        }
    }
    
    pub fn main2() {
        loop {
            let var : u128 = random();
        }
    }
    

    compiles to:

    example::main1::h45edf333d7832d08:
    .Lfunc_begin8:
            sub     rsp, 24
    .LBB8_1:
    .Ltmp80:
            mov     rax, qword ptr [rip + rand::random::he3c23ceb967a3e28@GOTPCREL]
            call    rax
            mov     qword ptr [rsp + 8], rdx
            mov     qword ptr [rsp], rax
            jmp     .LBB8_1
    .Ltmp81:
    .Lfunc_end8:
    
    example::main2::h1a899b25b96d66db:
    .Lfunc_begin9:
            sub     rsp, 24
    .LBB9_1:
    .Ltmp82:
            mov     rax, qword ptr [rip + rand::random::he3c23ceb967a3e28@GOTPCREL]
            call    rax
            mov     qword ptr [rsp + 8], rdx
            mov     qword ptr [rsp], rax
            jmp     .LBB9_1
    .Ltmp83:
    .Lfunc_end9:
            jmp     .LBB9_1
    

    So yeah, exactly the same thing.