Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/tests/regression/new_solver.rs')
| -rw-r--r-- | crates/hir-ty/src/tests/regression/new_solver.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/crates/hir-ty/src/tests/regression/new_solver.rs b/crates/hir-ty/src/tests/regression/new_solver.rs index 64c69afa29..90c81d1e8f 100644 --- a/crates/hir-ty/src/tests/regression/new_solver.rs +++ b/crates/hir-ty/src/tests/regression/new_solver.rs @@ -524,3 +524,31 @@ fn g(it: *const (dyn Trait)) { "#, ); } + +#[test] +fn regression_20951() { + check_infer( + r#" +//- minicore: async_fn +trait DoesSomething { + fn do_something(&self) -> impl Future<Output = usize>; +} + +impl<F> DoesSomething for F +where + F: AsyncFn() -> usize, +{ + fn do_something(&self) -> impl Future<Output = usize> { + self() + } +} +"#, + expect![[r#" + 43..47 'self': &'? Self + 168..172 'self': &'? F + 205..227 '{ ... }': <F as AsyncFnMut<()>>::CallRefFuture<'<erased>> + 215..219 'self': &'? F + 215..221 'self()': <F as AsyncFnMut<()>>::CallRefFuture<'<erased>> + "#]], + ); +} |