error[E0308]: mismatched types --> $DIR/issue-12552.rs:6:5 | LL | match t { | - this expression has type `Result<_, {integer}>` LL | Some(k) => match k { | ^^^^^^^ expected `Result<_, {integer}>`, found `Option<_>` | = note: expected enum `Result<_, {integer}>` found enum `Option<_>` help: try wrapping the pattern in `Ok` | LL | Ok(Some(k)) => match k { | +++ + error[E0308]: mismatched types --> $DIR/issue-12552.rs:9:5 | LL | match t { | - this expression has type `Result<_, {integer}>` ... LL | None => () | ^^^^ expected `Result<_, {integer}>`, found `Option<_>` | = note: expected enum `Result<_, {integer}>` found enum `Option<_>` help: try wrapping the pattern in `Ok` | LL | Ok(None) => () | +++ + error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`.