error[E0409]: variable `a` is bound in inconsistent ways within the same match arm --> $DIR/inconsistent-modes.rs:9:25 | LL | let Ok(a) | Err(ref a): Result<&u8, u8> = Ok(&0); | - ^ bound in different ways | | | first binding error[E0409]: variable `a` is bound in inconsistent ways within the same match arm --> $DIR/inconsistent-modes.rs:11:29 | LL | let Ok(ref mut a) | Err(a): Result = Ok(0); | - ^ bound in different ways | | | first binding error[E0409]: variable `a` is bound in inconsistent ways within the same match arm --> $DIR/inconsistent-modes.rs:13:33 | 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 in inconsistent ways within the same match arm --> $DIR/inconsistent-modes.rs:16:39 | 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 in inconsistent ways within the same match arm --> $DIR/inconsistent-modes.rs:16:46 | 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 in inconsistent ways within the same match arm --> $DIR/inconsistent-modes.rs:22:38 | LL | let Ok(Ok(a) | Err(a)) | Err(ref a) = Err(0); | - ^ bound in different ways | | | first binding error[E0409]: variable `a` is bound in inconsistent ways within the same match arm --> $DIR/inconsistent-modes.rs:26:34 | LL | let Ok([ Ok((Ok(ref a) | Err(a),)) | Err(a) ]) | Err(a) = Err(&1); | - ^ bound in different ways | | | first binding warning: the feature `or_patterns` is incomplete and may cause the compiler to crash --> $DIR/inconsistent-modes.rs:3:12 | LL | #![feature(or_patterns)] | ^^^^^^^^^^^ | = note: `#[warn(incomplete_features)]` on by default error[E0308]: mismatched types --> $DIR/inconsistent-modes.rs:13:25 | LL | let Ok(ref a) | Err(ref mut a): Result<&u8, &mut u8> = Ok(&0); | ^^^^^^^^^ -------------------- expected due to this | | | types differ in mutability | = note: expected type `&&u8` found type `&mut &mut u8` error[E0308]: mismatched types --> $DIR/inconsistent-modes.rs:16:31 | LL | let Ok((ref a, b)) | Err((ref mut a, ref b)) = Ok((0, &0)); | ^^^^^^^^^ ----------- this expression has type `std::result::Result<({integer}, &{integer}), (_, _)>` | | | types differ in mutability | = note: expected type `&{integer}` found type `&mut _` error: aborting due to 9 previous errors Some errors have detailed explanations: E0308, E0409. For more information about an error, try `rustc --explain E0308`.