]> git.lizzy.rs Git - rust.git/commitdiff
failing test for a reference local
authorJeroen Vannevel <jer_vannevel@outlook.com>
Wed, 5 Jan 2022 01:27:15 +0000 (01:27 +0000)
committerJeroen Vannevel <jer_vannevel@outlook.com>
Wed, 5 Jan 2022 01:27:15 +0000 (01:27 +0000)
crates/ide_assists/src/handlers/extract_variable.rs

index 39a4700915f6bef6fb0d186b612719b5ec1e7a49..9e11e38d3d6b7fcd56dcc093d68827970e96c31b 100644 (file)
@@ -1134,6 +1134,72 @@ struct S {
 fn foo(s: S) {
     let $0x = s.sub;
     x.do_thing();
+}"#,
+        );
+    }
+
+    #[test]
+    fn test_extract_var_reference_local() {
+        check_assist(
+            extract_variable,
+            r#"
+struct X;
+
+struct S {
+    sub: X
+}
+
+impl S {
+    fn new() -> S {
+        S { 
+            sub: X::new()
+        }
+    }
+}
+
+impl X {
+    fn new() -> X {
+        X { }
+    }
+    fn do_thing(&self) {
+
+    }
+}
+
+
+fn foo() {
+    let local = &mut S::new();
+    $0local.sub$0.do_thing();
+}"#,
+            r#"
+struct X;
+
+struct S {
+    sub: X
+}
+
+impl S {
+    fn new() -> S {
+        S { 
+            sub: X::new()
+        }
+    }
+}
+
+impl X {
+    fn new() -> X {
+        X { }
+    }
+    fn do_thing(&self) {
+
+    }
+}
+
+
+fn foo() {
+    let local = &mut S::new();
+    let $0x = local.sub;
+    x.do_thing();
 }"#,
         );
     }