mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-29 11:37:39 +00:00
Rollup merge of #86349 - yerke:add-test-for-issue-78632, r=Mark-Simulacrum
Add regression test for issue #78632 Add regression test for issue #78632 Closes #78632 Took this test from #78632 (what was committed to glacier in https://github.com/rust-lang/rust/issues/78632#issuecomment-731843345). Tested that the we get ICE on 1.52.1 on the playground (https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=b86d51fee4cded9d24b50d8ecbc48c6a).
This commit is contained in:
commit
aba0bed466
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