Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/context/tests.rs')
-rw-r--r--crates/ide-completion/src/context/tests.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/crates/ide-completion/src/context/tests.rs b/crates/ide-completion/src/context/tests.rs
index f03f61d10e..6121c61ea3 100644
--- a/crates/ide-completion/src/context/tests.rs
+++ b/crates/ide-completion/src/context/tests.rs
@@ -489,3 +489,39 @@ fn foo() {
expect![[r#"ty: State, name: ?"#]],
);
}
+
+#[test]
+fn expected_type_return_expr() {
+ check_expected_type_and_name(
+ r#"
+enum State { Stop }
+fn foo() -> State {
+ let _: i32 = if true {
+ 8
+ } else {
+ return $0;
+ };
+}
+"#,
+ expect![[r#"ty: State, name: ?"#]],
+ );
+}
+
+#[test]
+fn expected_type_return_expr_in_closure() {
+ check_expected_type_and_name(
+ r#"
+enum State { Stop }
+fn foo() {
+ let _f: fn() -> State = || {
+ let _: i32 = if true {
+ 8
+ } else {
+ return $0;
+ };
+ };
+}
+"#,
+ expect![[r#"ty: State, name: ?"#]],
+ );
+}