mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-11-01 20:31:59 +00:00
internal: Enforce utf8 paths
This commit is contained in:
parent
ba339596bf
commit
399dbc074b
46 changed files with 383 additions and 319 deletions
|
|
@ -23,7 +23,7 @@ snap = "1.1.0"
|
|||
indexmap = "2.1.0"
|
||||
|
||||
# local deps
|
||||
paths.workspace = true
|
||||
paths = { workspace = true, features = ["serde1"] }
|
||||
tt.workspace = true
|
||||
stdx.workspace = true
|
||||
text-size.workspace = true
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
//! Defines messages for cross-process message passing based on `ndjson` wire protocol
|
||||
pub(crate) mod flat;
|
||||
|
||||
use std::{
|
||||
io::{self, BufRead, Write},
|
||||
path::PathBuf,
|
||||
};
|
||||
use std::io::{self, BufRead, Write};
|
||||
|
||||
use paths::Utf8PathBuf;
|
||||
use serde::{de::DeserializeOwned, Deserialize, Serialize};
|
||||
|
||||
use crate::ProcMacroKind;
|
||||
|
|
@ -27,7 +25,7 @@ pub const CURRENT_API_VERSION: u32 = RUST_ANALYZER_SPAN_SUPPORT;
|
|||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub enum Request {
|
||||
/// Since [`NO_VERSION_CHECK_VERSION`]
|
||||
ListMacros { dylib_path: PathBuf },
|
||||
ListMacros { dylib_path: Utf8PathBuf },
|
||||
/// Since [`NO_VERSION_CHECK_VERSION`]
|
||||
ExpandMacro(Box<ExpandMacro>),
|
||||
/// Since [`VERSION_CHECK_VERSION`]
|
||||
|
|
@ -89,7 +87,7 @@ pub struct ExpandMacro {
|
|||
/// Possible attributes for the attribute-like macros.
|
||||
pub attributes: Option<FlatTree>,
|
||||
|
||||
pub lib: PathBuf,
|
||||
pub lib: Utf8PathBuf,
|
||||
|
||||
/// Environment variables to set during macro expansion.
|
||||
pub env: Vec<(String, String)>,
|
||||
|
|
@ -273,7 +271,7 @@ mod tests {
|
|||
macro_body: FlatTree::new(&tt, CURRENT_API_VERSION, &mut span_data_table),
|
||||
macro_name: Default::default(),
|
||||
attributes: None,
|
||||
lib: std::env::current_dir().unwrap(),
|
||||
lib: Utf8PathBuf::from_path_buf(std::env::current_dir().unwrap()).unwrap(),
|
||||
env: Default::default(),
|
||||
current_dir: Default::default(),
|
||||
has_global_spans: ExpnGlobals {
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ fn mk_child(
|
|||
env: &FxHashMap<String, String>,
|
||||
null_stderr: bool,
|
||||
) -> io::Result<Child> {
|
||||
let mut cmd = Command::new(path.as_os_str());
|
||||
let mut cmd = Command::new(path);
|
||||
cmd.envs(env)
|
||||
.env("RUST_ANALYZER_INTERNALS_DO_NOT_USE", "this is unstable")
|
||||
.stdin(Stdio::piped())
|
||||
|
|
@ -183,7 +183,7 @@ fn mk_child(
|
|||
.stderr(if null_stderr { Stdio::null() } else { Stdio::inherit() });
|
||||
if cfg!(windows) {
|
||||
let mut path_var = std::ffi::OsString::new();
|
||||
path_var.push(path.parent().unwrap().parent().unwrap().as_os_str());
|
||||
path_var.push(path.parent().unwrap().parent().unwrap());
|
||||
path_var.push("\\bin;");
|
||||
path_var.push(std::env::var_os("PATH").unwrap_or_default());
|
||||
cmd.env("PATH", path_var);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue