trait Trait {}
impl Trait<(A, B)> for (A, B) where A: ?Sized, B: ?Sized, {}
//~^ ERROR E0277
//~| ERROR E0277
impl Trait<(A, B, C)> for (A, B, C) where A: ?Sized, {}
//~^ ERROR E0277
//~| ERROR E0277
//~| ERROR E0277
trait Trait2 {}
impl Trait2<(A, B)> for (A, B) {}
//~^ ERROR E0277
//~| ERROR E0277
trait Trait3 {}
impl Trait3 for A where A: ?Sized {}
//~^ ERROR E0277
trait Trait4 {}
impl Trait4 for A {}
//~^ ERROR E0277
trait Trait5 {}
impl Trait5 for X where X: ?Sized {}
//~^ ERROR E0277
trait Trait6 {}
impl Trait6 for X {}
//~^ ERROR E0277
trait Trait7 {}
impl Trait7 for X where Y: ?Sized {}
//~^ ERROR E0277
trait Trait8 {}
impl Trait8 for X {}
//~^ ERROR E0277
fn main() {}