Unnamed repository; edit this file 'description' to name the repository.
additional test without further usages
Jeroen Vannevel 2022-01-04
parent 95cabfd · commit 5beddf9
-rw-r--r--crates/ide_assists/src/handlers/extract_function.rs33
1 files changed, 32 insertions, 1 deletions
diff --git a/crates/ide_assists/src/handlers/extract_function.rs b/crates/ide_assists/src/handlers/extract_function.rs
index 8c7fb03f7a..2821f6cde9 100644
--- a/crates/ide_assists/src/handlers/extract_function.rs
+++ b/crates/ide_assists/src/handlers/extract_function.rs
@@ -4337,7 +4337,7 @@ fn $0fun_name(a: _) -> _ {
}
#[test]
- fn test_jeroen() {
+ fn reference_mutable_param_with_further_usages() {
check_assist(
extract_function,
r#"
@@ -4372,4 +4372,35 @@ fn $0fun_name(arg: &mut Foo) {
"#,
);
}
+
+ #[test]
+ fn reference_mutable_param_without_further_usages() {
+ check_assist(
+ extract_function,
+ r#"
+pub struct Foo {
+ field: u32,
+}
+
+pub fn testfn(arg: &mut Foo) {
+ $0arg.field = 8; // write access
+ println!("{}", arg.field); // read access$0
+}
+"#,
+ r#"
+pub struct Foo {
+ field: u32,
+}
+
+pub fn testfn(arg: &mut Foo) {
+ fun_name(arg); // read access
+}
+
+fn $0fun_name(arg: &mut Foo) {
+ arg.field = 8;
+ println!("{}", arg.field);
+}
+"#,
+ );
+ }
}