diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2021-06-22 00:00:40 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-22 00:00:40 +0900 |
| commit | aba0bed46606d49b910cd6b44f161d549f9c1a8c (patch) | |
| tree | 2e43187de83169ee665fb2cdac280783a7ba2529 /src | |
| parent | 58e7411092f6db30b982f485238d7cfc2875b00e (diff) | |
| parent | 782824c48f79d5fbe6732484e4b5cc4ab9892e41 (diff) | |
| download | rust-aba0bed46606d49b910cd6b44f161d549f9c1a8c.tar.gz rust-aba0bed46606d49b910cd6b44f161d549f9c1a8c.zip | |
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).
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/traits/issue-78632.rs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/test/ui/traits/issue-78632.rs b/src/test/ui/traits/issue-78632.rs new file mode 100644 index 00000000000..c72a2aef490 --- /dev/null +++ b/src/test/ui/traits/issue-78632.rs @@ -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(); +} |
