about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2024-04-24 21:24:40 +0200
committerLukas Wirth <lukastw97@gmail.com>2024-04-25 09:10:49 +0200
commit10e82da69d89f96ca31529a3b8f55d3c2436eba0 (patch)
treef73ce724ea7501e2d93195b97206455009886eb0
parentec1a29b443d62e5876b3bad286f05c980835a3f8 (diff)
downloadrust-10e82da69d89f96ca31529a3b8f55d3c2436eba0.tar.gz
rust-10e82da69d89f96ca31529a3b8f55d3c2436eba0.zip
Add inlay hints lifetime arg tests
-rw-r--r--src/tools/rust-analyzer/crates/ide-assists/src/handlers/extract_function.rs2
-rw-r--r--src/tools/rust-analyzer/crates/ide-completion/src/tests/predicate.rs4
-rw-r--r--src/tools/rust-analyzer/crates/ide-completion/src/tests/type_pos.rs8
-rw-r--r--src/tools/rust-analyzer/crates/ide/src/inlay_hints/bind_pat.rs21
4 files changed, 27 insertions, 8 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/extract_function.rs b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/extract_function.rs
index 34326294d2e..2b8de3443b4 100644
--- a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/extract_function.rs
+++ b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/extract_function.rs
@@ -5623,7 +5623,7 @@ fn func<T: Debug>(i: Struct<'_, T>) {
     fun_name(i);
 }
 
-fn $0fun_name(i: Struct<'_, T>) {
+fn $0fun_name(i: Struct<T>) {
     foo(i);
 }
 "#,
diff --git a/src/tools/rust-analyzer/crates/ide-completion/src/tests/predicate.rs b/src/tools/rust-analyzer/crates/ide-completion/src/tests/predicate.rs
index 64a32dee3d7..62eb642b3bc 100644
--- a/src/tools/rust-analyzer/crates/ide-completion/src/tests/predicate.rs
+++ b/src/tools/rust-analyzer/crates/ide-completion/src/tests/predicate.rs
@@ -19,7 +19,7 @@ struct Foo<'lt, T, const C: usize> where $0 {}
             en Enum      Enum
             ma makro!(…) macro_rules! makro
             md module
-            st Foo<…>    Foo<'{error}, {unknown}, _>
+            st Foo<…>    Foo<{unknown}, _>
             st Record    Record
             st Tuple     Tuple
             st Unit      Unit
@@ -92,7 +92,7 @@ struct Foo<'lt, T, const C: usize> where for<'a> $0 {}
             en Enum      Enum
             ma makro!(…) macro_rules! makro
             md module
-            st Foo<…>    Foo<'{error}, {unknown}, _>
+            st Foo<…>    Foo<{unknown}, _>
             st Record    Record
             st Tuple     Tuple
             st Unit      Unit
diff --git a/src/tools/rust-analyzer/crates/ide-completion/src/tests/type_pos.rs b/src/tools/rust-analyzer/crates/ide-completion/src/tests/type_pos.rs
index 66f1bff7c1c..ff38c161087 100644
--- a/src/tools/rust-analyzer/crates/ide-completion/src/tests/type_pos.rs
+++ b/src/tools/rust-analyzer/crates/ide-completion/src/tests/type_pos.rs
@@ -20,8 +20,8 @@ struct Foo<'lt, T, const C: usize> {
             en Enum      Enum
             ma makro!(…) macro_rules! makro
             md module
-            sp Self      Foo<'{error}, {unknown}, _>
-            st Foo<…>    Foo<'{error}, {unknown}, _>
+            sp Self      Foo<{unknown}, _>
+            st Foo<…>    Foo<{unknown}, _>
             st Record    Record
             st Tuple     Tuple
             st Unit      Unit
@@ -45,8 +45,8 @@ struct Foo<'lt, T, const C: usize>(f$0);
             en Enum       Enum
             ma makro!(…)  macro_rules! makro
             md module
-            sp Self       Foo<'{error}, {unknown}, _>
-            st Foo<…>     Foo<'{error}, {unknown}, _>
+            sp Self       Foo<{unknown}, _>
+            st Foo<…>     Foo<{unknown}, _>
             st Record     Record
             st Tuple      Tuple
             st Unit       Unit
diff --git a/src/tools/rust-analyzer/crates/ide/src/inlay_hints/bind_pat.rs b/src/tools/rust-analyzer/crates/ide/src/inlay_hints/bind_pat.rs
index 07b9f9cc1ff..0cb8c485b2f 100644
--- a/src/tools/rust-analyzer/crates/ide/src/inlay_hints/bind_pat.rs
+++ b/src/tools/rust-analyzer/crates/ide/src/inlay_hints/bind_pat.rs
@@ -332,6 +332,25 @@ fn main(a: SliceIter<'_, Container>) {
     }
 
     #[test]
+    fn lt_hints() {
+        check_types(
+            r#"
+struct S<'lt>;
+
+fn f<'a>() {
+    let x = S::<'static>;
+      //^ S<'static>
+    let y = S::<'_>;
+      //^ S
+    let z = S::<'a>;
+      //^ S<'a>
+
+}
+"#,
+        );
+    }
+
+    #[test]
     fn fn_hints() {
         check_types(
             r#"
@@ -341,7 +360,7 @@ fn foo1() -> impl Fn(f64) { loop {} }
 fn foo2() -> impl Fn(f64, f64) { loop {} }
 fn foo3() -> impl Fn(f64, f64) -> u32 { loop {} }
 fn foo4() -> &'static dyn Fn(f64, f64) -> u32 { loop {} }
-fn foo5() -> &'static dyn Fn(&'static dyn Fn(f64, f64) -> u32, f64) -> u32 { loop {} }
+fn foo5() -> &'static for<'a> dyn Fn(&'a dyn Fn(f64, f64) -> u32, f64) -> u32 { loop {} }
 fn foo6() -> impl Fn(f64, f64) -> u32 + Sized { loop {} }
 fn foo7() -> *const (impl Fn(f64, f64) -> u32 + Sized) { loop {} }