From 1b71cd074de0645f2e209db48846b25a474014df Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sun, 13 Mar 2022 16:25:03 +0100 Subject: [PATCH] Add test for DynMap type inference --- crates/hir_ty/src/tests/traits.rs | 37 +++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/crates/hir_ty/src/tests/traits.rs b/crates/hir_ty/src/tests/traits.rs index 5daffb2c5e..a82b8cb466 100644 --- a/crates/hir_ty/src/tests/traits.rs +++ b/crates/hir_ty/src/tests/traits.rs @@ -3609,3 +3609,40 @@ fn f() { "#]], ); } + +#[test] +fn dyn_map() { + check_types( + r#" +pub struct Key {} + +pub trait Policy { + type K; + type V; +} + +impl Policy for (K, V) { + type K = K; + type V = V; +} + +pub struct KeyMap {} + +impl KeyMap> { + pub fn get(&self, key: &P::K) -> P::V { + loop {} + } +} + +struct Fn {} +struct FunctionId {} + +fn test() { + let key_map: &KeyMap> = loop {}; + let key; + let result = key_map.get(key); + //^^^^^^ FunctionId +} +"#, + ) +}