Unnamed repository; edit this file 'description' to name the repository.
fix: Fix proc-macro dylib names on windows
Lukas Wirth 2024-12-15
parent fc18d26 · commit 6c6779e
-rw-r--r--crates/proc-macro-srv/src/dylib.rs9
1 files changed, 3 insertions, 6 deletions
diff --git a/crates/proc-macro-srv/src/dylib.rs b/crates/proc-macro-srv/src/dylib.rs
index 977ca8bafd..26f6af84aa 100644
--- a/crates/proc-macro-srv/src/dylib.rs
+++ b/crates/proc-macro-srv/src/dylib.rs
@@ -199,18 +199,15 @@ fn ensure_file_with_lock_free_access(path: &Utf8Path) -> io::Result<Utf8PathBuf>
to.push("rust-analyzer-proc-macros");
_ = fs::create_dir(&to);
- let file_name = path.file_name().ok_or_else(|| {
+ let file_name = path.file_stem().ok_or_else(|| {
io::Error::new(io::ErrorKind::InvalidInput, format!("File path is invalid: {path}"))
})?;
to.push({
// Generate a unique number by abusing `HashMap`'s hasher.
// Maybe this will also "inspire" a libs team member to finally put `rand` in libstd.
- let t = RandomState::new().build_hasher().finish();
- let mut unique_name = t.to_string();
- unique_name.push_str(file_name);
- unique_name.push('-');
- unique_name
+ let unique_name = RandomState::new().build_hasher().finish();
+ format!("{file_name}-{unique_name}.dll")
});
fs::copy(path, &to)?;
Ok(to)