diff options
author | Lukas Wirth <[email protected]> | 2020-12-17 21:01:42 +0000 |
---|---|---|
committer | Lukas Wirth <[email protected]> | 2020-12-17 21:01:42 +0000 |
commit | fa65d6ba855fb2da68840b987bfdec258239a59b (patch) | |
tree | 64700d82eec8ab83912aa7d8eb752fe6becc7b7c /crates/ide/src | |
parent | c8c58d81eca78b322675afa053463e06c422cfbc (diff) |
Higher-ranked trait bounds for where clauses
Diffstat (limited to 'crates/ide/src')
-rw-r--r-- | crates/ide/src/goto_definition.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/crates/ide/src/goto_definition.rs b/crates/ide/src/goto_definition.rs index 173509b08..d75ae447b 100644 --- a/crates/ide/src/goto_definition.rs +++ b/crates/ide/src/goto_definition.rs | |||
@@ -1077,4 +1077,32 @@ fn foo<'foobar>(_: &'foobar ()) { | |||
1077 | }"#, | 1077 | }"#, |
1078 | ) | 1078 | ) |
1079 | } | 1079 | } |
1080 | |||
1081 | #[test] | ||
1082 | #[ignore] // requires the HIR to somehow track these hrtb lifetimes | ||
1083 | fn goto_lifetime_hrtb() { | ||
1084 | check( | ||
1085 | r#"trait Foo<T> {} | ||
1086 | fn foo<T>() where for<'a> T: Foo<&'a<|> (u8, u16)>, {} | ||
1087 | //^^ | ||
1088 | "#, | ||
1089 | ); | ||
1090 | check( | ||
1091 | r#"trait Foo<T> {} | ||
1092 | fn foo<T>() where for<'a<|>> T: Foo<&'a (u8, u16)>, {} | ||
1093 | //^^ | ||
1094 | "#, | ||
1095 | ); | ||
1096 | } | ||
1097 | |||
1098 | #[test] | ||
1099 | #[ignore] // requires ForTypes to be implemented | ||
1100 | fn goto_lifetime_hrtb_for_type() { | ||
1101 | check( | ||
1102 | r#"trait Foo<T> {} | ||
1103 | fn foo<T>() where T: for<'a> Foo<&'a<|> (u8, u16)>, {} | ||
1104 | //^^ | ||
1105 | "#, | ||
1106 | ); | ||
1107 | } | ||
1080 | } | 1108 | } |