mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-07-24 13:35:13 +00:00
parent
9b29573a4b
commit
c61fee6d55
3 changed files with 28 additions and 3 deletions
|
@ -110,7 +110,7 @@ pub fn defer<F: FnOnce()>(f: F) -> impl Drop {
|
|||
D(Some(f))
|
||||
}
|
||||
|
||||
#[repr(transparent)]
|
||||
#[cfg_attr(not(target_arch = "wasm32"), repr(transparent))]
|
||||
pub struct JodChild(pub std::process::Child);
|
||||
|
||||
impl ops::Deref for JodChild {
|
||||
|
@ -135,7 +135,10 @@ impl Drop for JodChild {
|
|||
|
||||
impl JodChild {
|
||||
pub fn into_inner(self) -> std::process::Child {
|
||||
// SAFETY: repr transparent
|
||||
if cfg!(target_arch = "wasm32") {
|
||||
panic!("no processes on wasm");
|
||||
}
|
||||
// SAFETY: repr transparent, except on WASM
|
||||
unsafe { std::mem::transmute::<JodChild, std::process::Child>(self) }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -236,3 +236,19 @@ mod imp {
|
|||
slice::from_raw_parts_mut(v.as_mut_ptr().add(v.len()), v.capacity() - v.len())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
mod imp {
|
||||
use std::{
|
||||
io,
|
||||
process::{ChildStderr, ChildStdout},
|
||||
};
|
||||
|
||||
pub(crate) fn read2(
|
||||
_out_pipe: ChildStdout,
|
||||
_err_pipe: ChildStderr,
|
||||
_data: &mut dyn FnMut(bool, &mut Vec<u8>, bool),
|
||||
) -> io::Result<()> {
|
||||
panic!("no processes on wasm")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue