diff --git a/crates/ra_proc_macro_srv/src/dylib.rs b/crates/ra_proc_macro_srv/src/dylib.rs
index 018cc7bb807..99c83481a04 100644
--- a/crates/ra_proc_macro_srv/src/dylib.rs
+++ b/crates/ra_proc_macro_srv/src/dylib.rs
@@ -199,6 +199,7 @@ impl Expander {
     }
 }
 
+#[cfg(windows)]
 fn copy_to_temp_dir(path: &Path) -> io::Result<PathBuf> {
     let mut to = std::env::temp_dir();
     let file_name = path.file_name().ok_or_else(|| {
@@ -212,3 +213,8 @@ fn copy_to_temp_dir(path: &Path) -> io::Result<PathBuf> {
     std::fs::copy(path, &to)?;
     Ok(to)
 }
+
+#[cfg(unix)]
+fn copy_to_temp_dir(path: &Path) -> io::Result<PathBuf> {
+    Ok(path.to_path_buf())
+}