error[E0308]: mismatched types --> $DIR/issue-15896.rs:11:11 | LL | let u = match e { | - this match expression has type `main::R` LL | E::B( LL | Tau{t: x}, | ^^^^^^^^^ expected enum `main::R`, found struct `main::Tau` | = note: expected type `main::R` found type `main::Tau` error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.