diff options
Diffstat (limited to 'tests/ui/generic-associated-types/issue-79636-1.rs')
-rw-r--r-- | tests/ui/generic-associated-types/issue-79636-1.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/ui/generic-associated-types/issue-79636-1.rs b/tests/ui/generic-associated-types/issue-79636-1.rs new file mode 100644 index 000000000..a89039b5c --- /dev/null +++ b/tests/ui/generic-associated-types/issue-79636-1.rs @@ -0,0 +1,21 @@ +trait Monad { + type Unwrapped; + type Wrapped<B>; + + fn bind<B, F>(self, f: F) -> Self::Wrapped<B> { + todo!() + } +} + +fn join<MOuter, MInner, A>(outer: MOuter) -> MOuter::Wrapped<A> +where + MOuter: Monad<Unwrapped = MInner>, + MInner: Monad<Unwrapped = A, Wrapped = MOuter::Wrapped<A>>, + //~^ ERROR: missing generics for associated type `Monad::Wrapped` +{ + outer.bind(|inner| inner) +} + +fn main() { + assert_eq!(join(Some(Some(true))), Some(true)); +} |