mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-27 12:25:05 +00:00
parent
9b29573a4b
commit
c61fee6d55
3 changed files with 28 additions and 3 deletions
8
.github/workflows/ci.yaml
vendored
8
.github/workflows/ci.yaml
vendored
|
@ -66,6 +66,9 @@ jobs:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
targets: "powerpc-unknown-linux-gnu x86_64-unknown-linux-musl"
|
targets: "powerpc-unknown-linux-gnu x86_64-unknown-linux-musl"
|
||||||
|
# The rust-analyzer binary is not expected to compile on WASM, but the IDE
|
||||||
|
# crate should
|
||||||
|
targets_ide: "wasm32-unknown-unknown"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
|
@ -79,7 +82,7 @@ jobs:
|
||||||
override: true
|
override: true
|
||||||
|
|
||||||
- name: Install Rust targets
|
- name: Install Rust targets
|
||||||
run: rustup target add ${{ env.targets }}
|
run: rustup target add ${{ env.targets }} ${{ env.targets_ide }}
|
||||||
|
|
||||||
- name: Cache Dependencies
|
- name: Cache Dependencies
|
||||||
uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72
|
uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72
|
||||||
|
@ -89,6 +92,9 @@ jobs:
|
||||||
for target in ${{ env.targets }}; do
|
for target in ${{ env.targets }}; do
|
||||||
cargo check --target=$target --all-targets
|
cargo check --target=$target --all-targets
|
||||||
done
|
done
|
||||||
|
for target in ${{ env.targets_ide }}; do
|
||||||
|
cargo check -p ide --target=$target --all-targets
|
||||||
|
done
|
||||||
|
|
||||||
typescript:
|
typescript:
|
||||||
name: TypeScript
|
name: TypeScript
|
||||||
|
|
|
@ -110,7 +110,7 @@ pub fn defer<F: FnOnce()>(f: F) -> impl Drop {
|
||||||
D(Some(f))
|
D(Some(f))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[repr(transparent)]
|
#[cfg_attr(not(target_arch = "wasm32"), repr(transparent))]
|
||||||
pub struct JodChild(pub std::process::Child);
|
pub struct JodChild(pub std::process::Child);
|
||||||
|
|
||||||
impl ops::Deref for JodChild {
|
impl ops::Deref for JodChild {
|
||||||
|
@ -135,7 +135,10 @@ impl Drop for JodChild {
|
||||||
|
|
||||||
impl JodChild {
|
impl JodChild {
|
||||||
pub fn into_inner(self) -> std::process::Child {
|
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) }
|
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())
|
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…
Reference in a new issue