diff options
Diffstat (limited to 'crates/ra_hir/src/ty')
-rw-r--r-- | crates/ra_hir/src/ty/lower.rs | 4 | ||||
-rw-r--r-- | crates/ra_hir/src/ty/tests.rs | 24 |
2 files changed, 25 insertions, 3 deletions
diff --git a/crates/ra_hir/src/ty/lower.rs b/crates/ra_hir/src/ty/lower.rs index de3c56097..03db38605 100644 --- a/crates/ra_hir/src/ty/lower.rs +++ b/crates/ra_hir/src/ty/lower.rs | |||
@@ -611,9 +611,7 @@ pub(crate) fn generic_defaults_query(db: &impl HirDatabase, def: GenericDef) -> | |||
611 | let defaults = generic_params | 611 | let defaults = generic_params |
612 | .params_including_parent() | 612 | .params_including_parent() |
613 | .into_iter() | 613 | .into_iter() |
614 | .map(|p| { | 614 | .map(|p| p.default.as_ref().map_or(Ty::Unknown, |t| Ty::from_hir(db, &resolver, t))) |
615 | p.default.as_ref().map_or(Ty::Unknown, |path| Ty::from_hir_path(db, &resolver, path)) | ||
616 | }) | ||
617 | .collect(); | 615 | .collect(); |
618 | 616 | ||
619 | Substs(defaults) | 617 | Substs(defaults) |
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index c1024d03c..abfaffb5e 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs | |||
@@ -1980,6 +1980,30 @@ fn test() { | |||
1980 | } | 1980 | } |
1981 | 1981 | ||
1982 | #[test] | 1982 | #[test] |
1983 | fn infer_associated_method_generics_with_default_tuple_param() { | ||
1984 | let t = type_at( | ||
1985 | r#" | ||
1986 | //- /main.rs | ||
1987 | struct Gen<T=()> { | ||
1988 | val: T | ||
1989 | } | ||
1990 | |||
1991 | impl<T> Gen<T> { | ||
1992 | pub fn make() -> Gen<T> { | ||
1993 | loop { } | ||
1994 | } | ||
1995 | } | ||
1996 | |||
1997 | fn test() { | ||
1998 | let a = Gen::make(); | ||
1999 | a.val<|>; | ||
2000 | } | ||
2001 | "#, | ||
2002 | ); | ||
2003 | assert_eq!(t, "()"); | ||
2004 | } | ||
2005 | |||
2006 | #[test] | ||
1983 | fn infer_associated_method_generics_without_args() { | 2007 | fn infer_associated_method_generics_without_args() { |
1984 | assert_snapshot!( | 2008 | assert_snapshot!( |
1985 | infer(r#" | 2009 | infer(r#" |