// check-pass pub trait Fooey: Sized { type Context<'c> where Self: 'c; } pub struct Handle(Option Fn(&mut E::Context<'c>)>>); fn tuple() -> (Option,) { (Option::None,) } pub struct FooImpl {} impl Fooey for FooImpl { type Context<'c> = &'c (); } impl FooImpl { pub fn fail1() -> Handle { let (tx,) = tuple(); Handle(tx) } } fn main() {}