blob: f99096b4d5829464d224a95c7c11bb90ad32aea6 [file] [log] [blame]
// ignore-tidy-linelength
#![feature(type_alias_impl_trait)]
pub trait Bar
{
type E: Copy;
fn foo<T>() -> Self::E;
}
impl<S: Default> Bar for S {
type E = impl Copy;
//~^ ERROR the trait bound `S: std::marker::Copy` is not satisfied in `(S, T)` [E0277]
//~^^ ERROR the trait bound `T: std::marker::Copy` is not satisfied in `(S, T)` [E0277]
fn foo<T: Default>() -> Self::E {
//~^ ERROR type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
(S::default(), T::default())
}
}
fn main() {}