rust/tests/ui/suggestions/trait-with-missing-associat...

44 lines
919 B
Rust

//@ run-rustfix
#![allow(unused)] // for the fixed file
trait Trait<T = Self> {
type A;
fn func(&self) -> Self::A;
}
struct S<T>(T);
impl<K> S<K> {
fn foo<'a, T: Trait + 'a>(&self, _: impl Trait, x: impl Trait<A = usize>, _: T) {
qux(x.func()) //~ ERROR mismatched types
}
fn ban<T>(x: T) where T: Trait<A = usize> {
qux(x.func()) //~ ERROR mismatched types
}
}
fn foo<'a, T: Trait + 'a>(_: impl Trait, x: impl Trait<A = usize>, _: T) {
qux(x.func()) //~ ERROR mismatched types
}
fn bar<T: Trait<A = usize>>(x: T) {
qux(x.func()) //~ ERROR mismatched types
}
fn foo2(x: impl Trait<i32, A = usize>) {
qux(x.func()) //~ ERROR mismatched types
}
fn bar2<T: Trait<i32, A = usize>>(x: T) {
qux(x.func()) //~ ERROR mismatched types
}
fn ban<T>(x: T) where T: Trait<A = usize> {
qux(x.func()) //~ ERROR mismatched types
}
fn qux(_: usize) {}
fn main() {}