diff options
Diffstat (limited to 'crates/ra_hir/src/ty/tests.rs')
-rw-r--r-- | crates/ra_hir/src/ty/tests.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index c3edf42b1..3c55a093f 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs | |||
@@ -2502,6 +2502,21 @@ fn test() { (&S).foo()<|>; } | |||
2502 | } | 2502 | } |
2503 | 2503 | ||
2504 | #[test] | 2504 | #[test] |
2505 | fn method_resolution_where_clause_for_unknown_trait() { | ||
2506 | // The blanket impl shouldn't apply because we can't even resolve UnknownTrait | ||
2507 | let t = type_at( | ||
2508 | r#" | ||
2509 | //- /main.rs | ||
2510 | trait Trait { fn foo(self) -> u128; } | ||
2511 | struct S; | ||
2512 | impl<T> Trait for T where T: UnknownTrait {} | ||
2513 | fn test() { (&S).foo()<|>; } | ||
2514 | "#, | ||
2515 | ); | ||
2516 | assert_eq!(t, "{unknown}"); | ||
2517 | } | ||
2518 | |||
2519 | #[test] | ||
2505 | fn method_resolution_where_clause_not_met() { | 2520 | fn method_resolution_where_clause_not_met() { |
2506 | // The blanket impl shouldn't apply because we can't prove S: Clone | 2521 | // The blanket impl shouldn't apply because we can't prove S: Clone |
2507 | let t = type_at( | 2522 | let t = type_at( |