error[E0409]: variable `i` is bound inconsistently across alternatives separated by `|` --> $DIR/resolve-inconsistent-binding-mode.rs:9:34 | LL | Opts::A(ref i) | Opts::B(i) => {} | - ^ bound in different ways | | | first binding error[E0409]: variable `i` is bound inconsistently across alternatives separated by `|` --> $DIR/resolve-inconsistent-binding-mode.rs:18:34 | LL | Opts::A(ref i) | Opts::B(i) => {} | - ^ bound in different ways | | | first binding error[E0409]: variable `i` is bound inconsistently across alternatives separated by `|` --> $DIR/resolve-inconsistent-binding-mode.rs:27:42 | LL | Opts::A(ref mut i) | Opts::B(ref i) => {} | - first binding ^ bound in different ways error[E0308]: mismatched types --> $DIR/resolve-inconsistent-binding-mode.rs:9:34 | LL | match x { | - this expression has type `Opts` LL | Opts::A(ref i) | Opts::B(i) => {} | ----- ^ expected `&isize`, found `isize` | | | first introduced with type `&isize` here | = note: in the same arm, a binding must have the same type in all alternatives error[E0308]: mismatched types --> $DIR/resolve-inconsistent-binding-mode.rs:18:34 | LL | match x { | - this expression has type `Opts` LL | Opts::A(ref i) | Opts::B(i) => {} | ----- ^ expected `&isize`, found `isize` | | | first introduced with type `&isize` here | = note: in the same arm, a binding must have the same type in all alternatives error[E0308]: mismatched types --> $DIR/resolve-inconsistent-binding-mode.rs:27:38 | LL | match x { | - this expression has type `Opts` LL | Opts::A(ref mut i) | Opts::B(ref i) => {} | --------- ^^^^^ types differ in mutability | | | first introduced with type `&mut isize` here | = note: expected mutable reference `&mut isize` found reference `&isize` = note: in the same arm, a binding must have the same type in all alternatives error: aborting due to 6 previous errors Some errors have detailed explanations: E0308, E0409. For more information about an error, try `rustc --explain E0308`.