Skip to content

Commit 8b4de1b

Browse files
committed
Auto merge of rust-lang#118830 - GuillaumeGomez:env-tracked_env, r=Nilstrieb
Add support for `--env` on `tracked_env::var` Follow-up of rust-lang#118368. Part of Part of rust-lang#80792. It adds support of the `--env` option for proc-macros through `tracked_env::var`. r? `@Nilstrieb`
2 parents 2e29350 + 8d0bce7 commit 8b4de1b

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

proc_macro/src/bridge/mod.rs

Lines changed: 1 addition & 0 deletions
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>, ()>;

proc_macro/src/lib.rs

Lines changed: 2 additions & 1 deletion
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)