mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 07:14:28 +00:00
add regression test for issue #78632
This commit is contained in:
parent
0a8629bff6
commit
782824c48f
59
src/test/ui/traits/issue-78632.rs
Normal file
59
src/test/ui/traits/issue-78632.rs
Normal file
@ -0,0 +1,59 @@
|
||||
// check-pass
|
||||
//
|
||||
// Regression test for issue #78632
|
||||
|
||||
#![crate_type = "lib"]
|
||||
|
||||
pub trait Corge<T> {
|
||||
type Fred;
|
||||
}
|
||||
|
||||
impl Corge<u8> for () {
|
||||
type Fred = u32;
|
||||
}
|
||||
|
||||
pub trait Waldo {
|
||||
type Quax;
|
||||
}
|
||||
|
||||
impl Waldo for u32 {
|
||||
type Quax = u8;
|
||||
}
|
||||
|
||||
pub trait Grault
|
||||
where
|
||||
(): Corge<Self::Thud>,
|
||||
{
|
||||
type Thud;
|
||||
fn bar(_: <() as Corge<Self::Thud>>::Fred) {}
|
||||
}
|
||||
|
||||
impl<T> Grault for T
|
||||
where
|
||||
T: Waldo,
|
||||
(): Corge<T::Quax>,
|
||||
<() as Corge<T::Quax>>::Fred: Waldo,
|
||||
{
|
||||
type Thud = u8;
|
||||
}
|
||||
|
||||
pub trait Plugh<I> {
|
||||
fn baz();
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
pub struct Qiz<T> {
|
||||
foo: T,
|
||||
}
|
||||
|
||||
impl<T> Plugh<<() as Corge<T::Thud>>::Fred> for Qiz<T>
|
||||
where
|
||||
T: Grault,
|
||||
(): Corge<T::Thud>,
|
||||
{
|
||||
fn baz() {}
|
||||
}
|
||||
|
||||
pub fn test() {
|
||||
<Qiz<u32> as Plugh<u32>>::baz();
|
||||
}
|
Loading…
Reference in New Issue
Block a user