Add support for --env
on tracked_env::var
This commit is contained in:
parent
6f40082313
commit
6ce2fefea6
3 changed files with 7 additions and 1 deletions
|
@ -426,6 +426,10 @@ impl server::Types for Rustc<'_, '_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl server::FreeFunctions 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>) {
|
fn track_env_var(&mut self, var: &str, value: Option<&str>) {
|
||||||
self.sess()
|
self.sess()
|
||||||
.env_depinfo
|
.env_depinfo
|
||||||
|
|
|
@ -55,6 +55,7 @@ macro_rules! with_api {
|
||||||
$m! {
|
$m! {
|
||||||
FreeFunctions {
|
FreeFunctions {
|
||||||
fn drop($self: $S::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_env_var(var: &str, value: Option<&str>);
|
||||||
fn track_path(path: &str);
|
fn track_path(path: &str);
|
||||||
fn literal_from_str(s: &str) -> Result<Literal<$S::Span, $S::Symbol>, ()>;
|
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")]
|
#[unstable(feature = "proc_macro_tracked_env", issue = "99515")]
|
||||||
pub fn var<K: AsRef<OsStr> + AsRef<str>>(key: K) -> Result<String, VarError> {
|
pub fn var<K: AsRef<OsStr> + AsRef<str>>(key: K) -> Result<String, VarError> {
|
||||||
let key: &str = key.as_ref();
|
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());
|
crate::bridge::client::FreeFunctions::track_env_var(key, value.as_deref().ok());
|
||||||
value
|
value
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue