Skip to content

Commit 6ce2fef

Browse files
Add support for --env on tracked_env::var
1 parent 6f40082 commit 6ce2fef

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

compiler/rustc_expand/src/proc_macro_server.rs

+4
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@ impl server::Types for Rustc<'_, '_> {
426426
}
427427

428428
impl server::FreeFunctions for Rustc<'_, '_> {
429+
fn injected_env_var(&mut self, var: &str) -> Option<String> {
430+
self.ecx.sess.opts.logical_env.get(var).cloned()
431+
}
432+
429433
fn track_env_var(&mut self, var: &str, value: Option<&str>) {
430434
self.sess()
431435
.env_depinfo

library/proc_macro/src/bridge/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ macro_rules! with_api {
5555
$m! {
5656
FreeFunctions {
5757
fn drop($self: $S::FreeFunctions);
58+
fn injected_env_var(var: &str) -> Option<String>;
5859
fn track_env_var(var: &str, value: Option<&str>);
5960
fn track_path(path: &str);
6061
fn literal_from_str(s: &str) -> Result<Literal<$S::Span, $S::Symbol>, ()>;

library/proc_macro/src/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1503,7 +1503,8 @@ pub mod tracked_env {
15031503
#[unstable(feature = "proc_macro_tracked_env", issue = "99515")]
15041504
pub fn var<K: AsRef<OsStr> + AsRef<str>>(key: K) -> Result<String, VarError> {
15051505
let key: &str = key.as_ref();
1506-
let value = env::var(key);
1506+
let value = crate::bridge::client::FreeFunctions::injected_env_var(key)
1507+
.map_or_else(|| env::var(key), Ok);
15071508
crate::bridge::client::FreeFunctions::track_env_var(key, value.as_deref().ok());
15081509
value
15091510
}

0 commit comments

Comments
 (0)