blob: a9e9c9b5bebebe50103cb6fb315a8a186d86a374 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
// revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
//[full_tait]~^ WARN incomplete
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: Copy` is not satisfied in `(S, T)` [E0277]
//~^^ ERROR the trait bound `T: 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
//~| ERROR impl has stricter requirements than trait
(S::default(), T::default())
}
}
fn main() {}
|