rust/tests/ui/dropck/dropck-only-error-gat.rs

44 lines
837 B
Rust

// Test that we don't ICE for a typeck error that only shows up in dropck
// Version that uses a generic associated type
// Regression test for #91985
pub trait Trait1 {
type Associated: Ord;
}
pub trait Trait2 {
type Associated: Clone;
}
pub trait GatTrait {
type Gat<T: Clone>;
}
pub struct GatStruct;
impl GatTrait for GatStruct {
type Gat<T: Clone> = Box<T>;
}
pub struct OuterStruct<T1: Trait1, T2: Trait2> {
inner: InnerStruct<T2, GatStruct>,
t1: T1,
}
pub struct InnerStruct<T: Trait2, G: GatTrait> {
pub gat: G::Gat<T::Associated>,
}
impl<T1, T2> OuterStruct<T1, T2>
where
T1: Trait1,
T2: Trait2<Associated = T1::Associated>,
{
pub fn new() -> Self {
//~^ ERROR the trait bound `<T1 as Trait1>::Associated: Clone` is not satisfied
todo!()
}
}
pub fn main() {}