extract function broken the codes, add redundant slash #16867
Closed
Description
As you can see in blow gif, a redundant slash added before the end of extracted fn. With rust-analyzer 2024-02-12 version, no that redundant slash. I guess it may the related to #16618 according to the version timeline, not very sure.
rust-analyzer version: 0.3.1850-standalone (68c506f 2024-02-19)
rustc version: 1.76.0 (07dca489a 2024-02-04)
relevant settings:
{
["rust-analyzer"] = {
cachePriming = {
enable = false,
},
cargo = {
allFeatures = false,
},
check = {
allTargets = false,
},
checkOnSave = {
allFeatures = false,
command = "clippy",
extraArgs = { "--no-deps" },
},
completion = {
fullFunctionSignatures = true,
},
diagnostics = {
experimental = {
enable = true,
},
},
procMacro = {
enable = true,
ignored = {
["async-trait"] = { "async_trait" },
["napi-derive"] = { "napi" },
["async-recursion"] = { "async_recursion" },
},
},
},
}
repository link (if public, optional): None
code snippet to reproduce:
use tokio::runtime::Builder;
use tokio::time::{sleep, Duration};
fn main() {
let runtime = Builder::new_multi_thread()
.worker_threads(1)
.enable_all()
.build()
.unwrap();
let mut handles = Vec::with_capacity(10);
for i in 0..10 {
handles.push(runtime.spawn(my_bg_task(i)));
}
// Do something time-consuming while the background tasks execute.
// std::thread::sleep(Duration::from_millis(750));
println!("Finished time-consuming task.");
// Wait for all of them to complete.
for handle in handles {
// The `spawn` method returns a `JoinHandle`. A `JoinHandle` is
// a future, so we can wait for it using `block_on`.
runtime.block_on(handle).unwrap();
}
}
async fn my_bg_task(i: u64) {
// By subtracting, the tasks with larger values of i sleep for a
// shorter duration.
let millis = 1000 - 50 * i;
println!("Task {} sleeping for {} ms.", i, millis);
sleep(Duration::from_millis(millis)).await;
println!("Task {} stopping.", i);
}