diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-10-09 18:32:33 +0900 |
|---|---|---|
| committer | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-10-09 18:32:33 +0900 |
| commit | 3a4fe97052cf9d3f244fcab885e338a6384cefa6 (patch) | |
| tree | 09476454299c787fea31dcaa3f72dbb2921a5a1a /src | |
| parent | ebc1f89ecf3a8de6da0ed6c5809586105f5d7fae (diff) | |
| download | rust-3a4fe97052cf9d3f244fcab885e338a6384cefa6.tar.gz rust-3a4fe97052cf9d3f244fcab885e338a6384cefa6.zip | |
Add a regression test for issue-65581
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/impl-trait/issues/issue-65581.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/test/ui/impl-trait/issues/issue-65581.rs b/src/test/ui/impl-trait/issues/issue-65581.rs new file mode 100644 index 00000000000..af65b79d3e8 --- /dev/null +++ b/src/test/ui/impl-trait/issues/issue-65581.rs @@ -0,0 +1,33 @@ +// check-pass + +#![allow(dead_code)] + +trait Trait1<T, U> { + fn f1(self) -> U; +} + +trait Trait2 { + type T; + type U: Trait2<T = Self::T>; + fn f2(f: impl FnOnce(&Self::U)); +} + +fn f3<T: Trait2>() -> impl Trait1<T, T::T> { + Struct1 +} + +struct Struct1; + +impl<T: Trait2> Trait1<T, T::T> for Struct1 { + fn f1(self) -> T::T { + unimplemented!() + } +} + +fn f4<T: Trait2>() { + T::f2(|_| { + f3::<T::U>().f1(); + }); +} + +fn main() {} |
