error[E0409]: variable `a` is bound inconsistently across alternatives separated by `|` --> $DIR/inconsistent-modes.rs:6:26 | LL | let (Ok(a) | Err(ref a)): Result<&u8, u8> = Ok(&0); | - ^ bound in different ways | | | first binding error[E0409]: variable `a` is bound inconsistently across alternatives separated by `|` --> $DIR/inconsistent-modes.rs:8:30 | LL | let (Ok(ref mut a) | Err(a)): Result = Ok(0); | - ^ bound in different ways | | | first binding error[E0409]: variable `a` is bound inconsistently across alternatives separated by `|` --> $DIR/inconsistent-modes.rs:10:34 | LL | let (Ok(ref a) | Err(ref mut a)): Result<&u8, &mut u8> = Ok(&0); | - first binding ^ bound in different ways error[E0409]: variable `a` is bound inconsistently across alternatives separated by `|` --> $DIR/inconsistent-modes.rs:13:40 | LL | let (Ok((ref a, b)) | Err((ref mut a, ref b))) = Ok((0, &0)); | - first binding ^ bound in different ways error[E0409]: variable `b` is bound inconsistently across alternatives separated by `|` --> $DIR/inconsistent-modes.rs:13:47 | LL | let (Ok((ref a, b)) | Err((ref mut a, ref b))) = Ok((0, &0)); | - first binding ^ bound in different ways error[E0409]: variable `a` is bound inconsistently across alternatives separated by `|` --> $DIR/inconsistent-modes.rs:19:39 | LL | let (Ok(Ok(a) | Err(a)) | Err(ref a)) = Err(0); | - ^ bound in different ways | | | first binding error[E0409]: variable `a` is bound inconsistently across alternatives separated by `|` --> $DIR/inconsistent-modes.rs:23:34 | LL | let (Ok([Ok((Ok(ref a) | Err(a),)) | Err(a)]) | Err(a)) = Err(&1); | - ^ bound in different ways | | | first binding error[E0308]: mismatched types --> $DIR/inconsistent-modes.rs:10:26 | LL | let (Ok(ref a) | Err(ref mut a)): Result<&u8, &mut u8> = Ok(&0); | ----- ^^^^^^^^^ -------------------- expected due to this | | | | | types differ in mutability | first introduced with type `&&u8` here | = note: expected reference `&&_` found mutable reference `&mut &mut _` = note: a binding must have the same type in all alternatives error[E0308]: mismatched types --> $DIR/inconsistent-modes.rs:13:32 | LL | let (Ok((ref a, b)) | Err((ref mut a, ref b))) = Ok((0, &0)); | ----- ^^^^^^^^^ ----------- this expression has type `Result<({integer}, &{integer}), (_, _)>` | | | | | types differ in mutability | first introduced with type `&{integer}` here | = note: expected reference `&{integer}` found mutable reference `&mut _` = note: a binding must have the same type in all alternatives error: aborting due to 9 previous errors Some errors have detailed explanations: E0308, E0409. For more information about an error, try `rustc --explain E0308`.