Add support for --env
on tracked_env::var
This commit is contained in:
parent
6f40082313
commit
6ce2fefea6
@ -426,6 +426,10 @@ impl server::Types for Rustc<'_, '_> {
|
||||
}
|
||||
|
||||
impl server::FreeFunctions for Rustc<'_, '_> {
|
||||
fn injected_env_var(&mut self, var: &str) -> Option<String> {
|
||||
self.ecx.sess.opts.logical_env.get(var).cloned()
|
||||
}
|
||||
|
||||
fn track_env_var(&mut self, var: &str, value: Option<&str>) {
|
||||
self.sess()
|
||||
.env_depinfo
|
||||
|
@ -55,6 +55,7 @@ macro_rules! with_api {
|
||||
$m! {
|
||||
FreeFunctions {
|
||||
fn drop($self: $S::FreeFunctions);
|
||||
fn injected_env_var(var: &str) -> Option<String>;
|
||||
fn track_env_var(var: &str, value: Option<&str>);
|
||||
fn track_path(path: &str);
|
||||
fn literal_from_str(s: &str) -> Result<Literal<$S::Span, $S::Symbol>, ()>;
|
||||
|
@ -1503,7 +1503,8 @@ pub mod tracked_env {
|
||||
#[unstable(feature = "proc_macro_tracked_env", issue = "99515")]
|
||||
pub fn var<K: AsRef<OsStr> + AsRef<str>>(key: K) -> Result<String, VarError> {
|
||||
let key: &str = key.as_ref();
|
||||
let value = env::var(key);
|
||||
let value = crate::bridge::client::FreeFunctions::injected_env_var(key)
|
||||
.map_or_else(|| env::var(key), Ok);
|
||||
crate::bridge::client::FreeFunctions::track_env_var(key, value.as_deref().ok());
|
||||
value
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user